[Xmonad] darcs patch: use a global IORef to keep list of urgent
windows
Devin Mullins
me at twifkak.com
Sat Oct 27 15:13:10 EDT 2007
On Sat, Oct 27, 2007 at 02:52:28AM -0400, Devin Mullins wrote:
> - If it's bug-free (no space-leaks, safe-ish unsafePerformIO, etc.)
Well, after looking at some of the relevant comments in
GHC/{IOBase,STRef,ST}.lhs, I feel more confident that both are true.
1. The NOINLINE should eliminate duplicate newIORefs and order of ops is
safe here.
2. IORef (at least in GHC) use STRef, which uses ST, which is strict in
its state.
However, I'm having some other odd problems (repeatable!):
- If I mod-q xmonad while xchat is the current window, xchat no longer
sends urgent events. Opening prefs and hitting ok (no changes) fixes
it.
- If I mod-q xmonad while I've got a child dzen process open (via
XMC.Dzen.dzenUrgencyHook), the new xmonad no longer responds to
keyboard events. It responds to mouse events (the border moves with
focus). This is not the case for dzens spawned via:
spawn "(date; sleep 2) | dzen2"
In fact, the behavior is a little more nuanced. After I mod-q, while
the dzen is still open, I can hit mod-j, and I see the focus
temporarily move, and then snap back when I keyup. After the dzen
goes, 'j' gets sent to the client window.
Help!
Devin
More information about the Xmonad
mailing list