Without the change, the errors are like:
> [ unrelated error messages ]
> No constructor has all these fields: `numlockMask',
> `terminal', [every other field set]
With the change:
> `numlockMask' is not a record selector
> [ context where numlockMask is named ]
Changes include:
- compatibility with base-4 or 3 (base-2 untested) by using
extensible-exceptions. This adds an additional dependency for users of
ghc<6.10)
- list all dependencies again when -ftesting (change in Cabal-1.8.0.2)
- remove unnecessary imports
- suppress -fwarn-unused-do-bind, with appropriate Cabal-1.8 workaround,
described here:
http://www.haskell.org/pipermail/xmonad/2010-January/009554.html
Improvements:
- clicking on the root will change focus to that screen
- moving the mouse from a window on a screen to an empty screen changes focus
to that screen
The only remaining issue is that moving the mouse between two empty screens
does not change focus. In order to solve this, we'd have to select motion events
on the root window, which is potentially expensive.
If the user used the mouse to change window focus (moving into or clicking on a
window), this should be handled differently than focus changes due to keyboard
commands. Specifically, it's inappropriate to discard window enter/leave events
while the mouse is moving. This fixes the bug where a fast mouse motion across
multiple windows resulted in the wrong window keeping focus.
It's also helpful information for contrib modules such as UpdatePointer - it's
supposed to move the mouse pointer only in response to keyboard actions, not if
the user was moving the mouse.
Make applySizeHints take window borders into account. Move old functionality
to applySizeHintsContents. Add new mkAdjust function that generates a custom
autohinter for a window.
This patch:
- moves broadcastMessage and restart from Core to Operations (to avoid
circular imports);
- in Operations introduces sendMessageWithNoRefresh and move
updateLayout outside windows.
- broadcastMessage now uses sendMessageWithNoRefresh to obey to this
rules:
1. if handleMessage returns Nothing no action is taken;
2. if handleMessage returns a Just ml *only* the layout field of the
workspace record will be updated.
This patch ignores screens that are just clones of existing ones,
or are completely contained in another. Currently only for rescreen, not yet for
xmonad start.