
New patches:

[catch exceptions when calling user-written code.
David Roundy <droundy@darcs.net>**20071012005655
 Note: this is a less-than-minimal approach, since it
 seemed better to put the catchX in whenJust, rather
 than in both times whenJust is used in Main.  As a
 result, it does a few potentially less efficient checks,
 but we're also slightly more robust with regard to bugs
 introduced in the future.
] 
<
> {
hunk ./Operations.hs 69
 
     n <- fmap (fromMaybe "") $ io $ fetchName d w
     (ClassHint rn rc) <- io $ getClassHint d w
-    g <- manageHook w n rn rc
+    g <- manageHook w n rn rc `catchX` return id
     windows (g . f)
 
 -- | unmanage. A window no longer exists, remove it from the window
hunk ./Operations.hs 172
 
     whenJust (W.peek ws) $ \w -> io $ setWindowBorder d w fbc
     setTopFocus
-    logHook
+    logHook `catchX` return ()
     -- io performGC -- really helps, but seems to trigger GC bugs?
 
     -- hide every window that was potentially visible before, but is not
hunk ./XMonad.hs 252
 
 -- | Run a side effecting action with the current workspace. Like 'when' but
 whenJust :: Maybe a -> (a -> X ()) -> X ()
-whenJust mg f = maybe (return ()) f mg
+whenJust mg f = maybe (return ()) f mg `catchX` return ()
 
 -- | Conditionally run an action, using a X event to decide
 whenX :: X Bool -> X () -> X ()
}

Context:

[Nuke old TODOs, add a documentation TODO
Spencer Janssen <sjanssen@cse.unl.edu>**20071011022127] 
[Set the border color of new windows, nice catch by mauke
Spencer Janssen <sjanssen@cse.unl.edu>**20071011021627] 
[one more comment.
David Roundy <droundy@darcs.net>**20071011154423] 
[add comments in XMonad.
David Roundy <droundy@darcs.net>**20071011152942
 This change also removes readLayout as a top level function,
 since it's only used once.
] 
[Bump required X11-extras version to 0.3.1
Spencer Janssen <sjanssen@cse.unl.edu>**20071010165705] 
[Only adjust floating windows that are actually larger than the screen
Spencer Janssen <sjanssen@cse.unl.edu>**20071010062604
 Also, fix a typo caught by Xiao-Yong Jin on the mailing list.
] 
[Add LANGUAGE pragmas
Shachaf Ben-Kiki <shachaf@gmail.com>**20071008021107
 It seems that GHC 6.6 just enables -fglasgow-exts when it sees any LANGUAGE
 pragma, so not all of them were added; this patch adds the rest of them, which
 is necessary for xmonad to compile in GHC >=6.7.
] 
[The empty line isntcomment.
Ferenc Wagner <wferi@niif.hu>**20071006191231
 There is a separate filter for that case.
] 
[Add event handler for PropertyNotifyEvent that calls logHook if window title changed
Christian Thiemann <mail@christian-thiemann.de>**20071006175458] 
[Moving to code.haskell.org
Spencer Janssen <sjanssen@cse.unl.edu>**20071006191843] 
[comments need to be given for all top level bindings
Don Stewart <dons@galois.com>**20071006154127] 
[a bunch of things in XMonad.hs are missing top level comments!
Don Stewart <dons@galois.com>**20071006153608] 
[add mapWorkspace tests
Devin Mullins <me@twifkak.com>**20071006073129
 (just completely duplicated the two mapLayout tests :)
] 
[change email
Don Stewart <dons@galois.com>**20071006104901] 
[style on layout class code
Don Stewart <dons@galois.com>**20071006104606] 
[avoid name class with forever in 6.8
Don Stewart <dons@galois.com>**20071006103530] 
[polish some syntax
Don Stewart <dons@galois.com>**20071006102918] 
[oops, need to export
Devin Mullins <me@twifkak.com>**20071006055059] 
[darcs setpref test
Devin Mullins <me@twifkak.com>**20071006054333
 Fix, per that Main extraction I made the other day.
] 
[(cleanup) extract mapWorkspace out of renameTag
Devin Mullins <me@twifkak.com>**20071006054104] 
[comment out type error'd property
Don Stewart <dons@galois.com>**20071006102225] 
[add floating property
Don Stewart <dons@galois.com>**20071006100654] 
[mention C headers
Don Stewart <dons@galois.com>**20071006094006] 
[Comment only
Spencer Janssen <sjanssen@cse.unl.edu>**20071005034445] 
[Move grabButtons/Keys into X
Spencer Janssen <sjanssen@cse.unl.edu>**20071005034102] 
[Make WindowSet serialization robust to layout changes
Spencer Janssen <sjanssen@cse.unl.edu>**20071005000031] 
[Add mapLayout
Spencer Janssen <sjanssen@cse.unl.edu>**20071004234537] 
[extract Properties module for re-use by contrib tests
Devin Mullins <me@twifkak.com>**20071004075852
 I want to reuse Properties' Arbitrary instance (as well as the T and
 NonNegative types) in an upcoming set of SwapWorkspaces QC props.
 `module Main where import Main` doesn't work too well. :)
 
 If this patch is accepted, the darcs 'test' pref should be modified to
 "-itests tests/Main.hs".
] 
[Remove commented code
Spencer Janssen <sjanssen@cse.unl.edu>**20071004200200] 
[manageHook: use the curry style, better documentation
Spencer Janssen <sjanssen@cse.unl.edu>**20071003162404] 
[Pointfree
Spencer Janssen <sjanssen@cse.unl.edu>**20071003161643] 
[Remove unused import
Spencer Janssen <sjanssen@cse.unl.edu>**20071003161621] 
[Float Gimp too
Spencer Janssen <sjanssen@cse.unl.edu>**20071003161305] 
[add pureMessage.
David Roundy <droundy@darcs.net>**20071005140553] 
[List possibleLayouts last, because users are less likely to modify it
Spencer Janssen <sjanssen@cse.unl.edu>**20071002214708] 
[Docs for defaultLayout and defaultLayouts
Spencer Janssen <sjanssen@cse.unl.edu>**20071002214517] 
[clean up Config a bit.
David Roundy <droundy@darcs.net>**20071002203636] 
[Don't manage kdesktop either
Spencer Janssen <sjanssen@cse.unl.edu>**20071002182455] 
[Refactor, ignore desktop_window too
Spencer Janssen <sjanssen@cse.unl.edu>**20071002175258] 
[Automatically float MPlayer windows
Spencer Janssen <sjanssen@cse.unl.edu>**20071002174722] 
[Add rules for gnome-panel and kicker
Spencer Janssen <sjanssen@cse.unl.edu>**20071002174243] 
[Pass window name and class info to manageHook
Spencer Janssen <sjanssen@cse.unl.edu>**20071002174024] 
[Send ClassHints to manageHook
Spencer Janssen <sjanssen@cse.unl.edu>**20071001175246] 
[some renaming of classes and data types.
David Roundy <droundy@darcs.net>**20070929191320] 
[Operations.windows is responsible for setting initial properties, remove redundant code from Main
Spencer Janssen <sjanssen@cse.unl.edu>**20071001170628] 
[First cut at manageHook
Spencer Janssen <sjanssen@cse.unl.edu>**20071001164627] 
[Add StackSet.allWindows
Spencer Janssen <sjanssen@cse.unl.edu>**20071001163959] 
[deeper test for differentiate. back to 100% coverage
Don Stewart <dons@galois.com>**20070930075018] 
[properties for tag renaming
Don Stewart <dons@galois.com>**20070930074641] 
[test lookupWorkspace more deeply
Don Stewart <dons@galois.com>**20070930073822] 
[On change of keyboard mapping, grabKeys from the root window.
Aaron Denney <wnoise@ofb.net>**20070929224755] 
[Operation: coding style conformance
Andrea Rossato <andrea.rossato@unibz.it>**20070928112744] 
[StackSet uses PatternGuards
Spencer Janssen <sjanssen@cse.unl.edu>**20070928182510] 
[merge, update test hook
Don Stewart <dons@galois.com>**20070929142041] 
[100% coverage of alternative branches
Don Stewart <dons@galois.com>**20070928235745] 
[add some more properties for failure cases
Don Stewart <dons@galois.com>**20070928233230] 
[polish
Don Stewart <dons@galois.com>**20070928232839] 
[comments and formatting only
Don Stewart <dons@galois.com>**20070928220523] 
[Use LANGUAGE pragmas over -fglasgow-exts
Spencer Janssen <sjanssen@cse.unl.edu>**20070928181438] 
[set border color more judiciously, so layouts can customize this.
David Roundy <droundy@darcs.net>**20070928235346] 
[SomeLayout: use the description of the wrapped layout
Spencer Janssen <sjanssen@cse.unl.edu>**20070928052344] 
[LayoutSelection: describe the active layout only
Spencer Janssen <sjanssen@cse.unl.edu>**20070928051858] 
[define defaultLayout in Config.hs.
David Roundy <droundy@darcs.net>**20070928020208] 
[setLayout should not call sendMessage, because sendMessage calls windows
Spencer Janssen <sjanssen@cse.unl.edu>**20070928011510] 
[Add setLayout to the core
Spencer Janssen <sjanssen@cse.unl.edu>**20070928002241] 
[Document otherPossibleLayouts
Spencer Janssen <sjanssen@cse.unl.edu>**20070928000250] 
[Minor formatting
Spencer Janssen <sjanssen@cse.unl.edu>**20070928000025] 
[otherPossibleLayouts is empty by default
Spencer Janssen <sjanssen@cse.unl.edu>**20070927235845] 
[Update kind changes in the -class branch
Spencer Janssen <sjanssen@cse.unl.edu>**20070927222730] 
[add prop for 'differentiate'
Don Stewart <dons@galois.com>**20070927231928] 
[document shiftWin
Karsten Schoelzel <kuser@gmx.de>**20070927134205] 
[new QC properties: floating a window is reversible, screens includes current screen
Don Stewart <dons@galois.com>**20070927220431] 
[Add 3 QC properties for focusMaster: local, idempotent, preserves invariant
Don Stewart <dons@galois.com>**20070927214401] 
[no regents in xmonad license
Don Stewart <dons@galois.com>**20070927214317] 
[note that we use pattern guards in the .cabal file
Don Stewart <dons@galois.com>**20070927214230] 
[Add StackSet.focusMaster (mod-m) to move focus to master
Don Stewart <dons@galois.com>**20070927213937] 
[use hPrint instead of hPutStrLn
Don Stewart <dons@galois.com>**20070927213901] 
[put transients completely on the screen when possible.
David Roundy <droundy@darcs.net>**20070927211014] 
[Refactor floating code in manage
Spencer Janssen <sjanssen@cse.unl.edu>**20070927195534] 
[merge old workspace tags with new on restart.
David Roundy <droundy@darcs.net>**20070926183309] 
[Simplify readLayout, comment on surprising behavior
Spencer Janssen <sjanssen@cse.unl.edu>**20070925211708] 
[fix bug in reading of SomeLayouts.
David Roundy <droundy@darcs.net>**20070925202801] 
[fix bug where ReleaseResources wasn't getting sent to all layouts.
David Roundy <droundy@darcs.net>**20070925215816] 
[rename modifyLayout to handleMessage.
David Roundy <droundy@darcs.net>**20070925182906] 
[add support for parseable layouts not in the default.
David Roundy <droundy@darcs.net>**20070925174134] 
[make it easier to define pure layouts.
David Roundy <droundy@darcs.net>**20070925170503] 
[broadcast a ReleaseResources before restarting
Andrea Rossato <andrea.rossato@unibz.it>**20070924193915] 
[Added LayoutMessages
Andrea Rossato <andrea.rossato@unibz.it>**20070924193513
 This patch adds some more messages to manage layout: Hide is sent to
 layouts in that are not visible anymore. ReleaseReasourses is sent
 before a restart.
] 
[Make a String description part of each Layout.
David Roundy <droundy@darcs.net>**20070924185753] 
[update screens for new kind of StackSet.
David Roundy <droundy@darcs.net>**20070924134545] 
[Split float up
Spencer Janssen <sjanssen@cse.unl.edu>**20070924090606] 
[Use the new StackSet.screens in windows
Spencer Janssen <sjanssen@cse.unl.edu>**20070924090523] 
[Add StackSet.screens
Spencer Janssen <sjanssen@cse.unl.edu>**20070924090425] 
[create default modifyLayout that ignores messages.
David Roundy <droundy@darcs.net>**20070923115219] 
[add layout selection back into core xmonad using LayoutSelection.
David Roundy <droundy@darcs.net>**20070921212159
 This is just a reimplementation of LayoutChoice.
] 
[make layouts preserved over restart
David Roundy <droundy@darcs.net>**20070921204316] 
[Pointfree Mirror and SomeLayout instances
Spencer Janssen <sjanssen@cse.unl.edu>**20070920211042] 
[move Layout into StackSet.
David Roundy <droundy@darcs.net>**20070920221248
 WARNING! This changes the format of StackSet, and
 will definitely mess up your xmonad state, requiring
 at minimum a restart!
] 
[add (unused) Layout to StackSet.
David Roundy <droundy@darcs.net>**20070920212843] 
[remove unneeded Ord constraint.
David Roundy <droundy@darcs.net>**20070920210527] 
[Use derived Show and Read instances for Mirror
Spencer Janssen <sjanssen@cse.unl.edu>**20070920205711] 
[eliminate a few Eq a constraints in StackSet.
David Roundy <droundy@darcs.net>**20070920210143] 
[define readLayout to create a SomeLayout based on a set of possible layout types.
David Roundy <droundy@darcs.net>**20070920181506] 
[add Read instance to Layout.
David Roundy <droundy@darcs.net>**20070920174529] 
[add Show instance to Layout
David Roundy <droundy@darcs.net>**20070920161208] 
[eliminate ugly OldLayout.
David Roundy <droundy@darcs.net>**20070920155237] 
[fmt, and tiny comment seeking clarification
Don Stewart <dons@galois.com>**20070917234658] 
[Eliminate Operations.sink too
Spencer Janssen <sjanssen@cse.unl.edu>**20070917214052] 
[Remove Operations functions which have StackSet equivalents, just use 'windows foo' instead
Spencer Janssen <sjanssen@cse.unl.edu>**20070917211953] 
[Change manpage token @@ to %! to avoid conflicts with Haddock (xmonad)
Alex Tarkovsky <alextarkovsky@gmail.com>**20070916235229] 
[Haddockify delete' comments
Spencer Janssen <sjanssen@cse.unl.edu>**20070917194114] 
[Fix float behaviour, add shiftWin.
Karsten Schoelzel <kuser@gmx.de>**20070910090329
 
 First, if float is called with window which is on a hidden workspace,
 then the window will remain on that hidden workspace.
 
 Now the focus should change more as expected:
 float w = (view current) . (shiftWin ws w)
     where
         current is the current screen/workspace
         shiftWin ws w is: - view the workspace w is on
             - set focus on w
             - shift ws
             - set focus back to window it was on that workspace
                 unless w was focused
 
 shiftWin was add to StackSet.hs 
] 
[Add delete' for use in shift
Karsten Schoelzel <kuser@gmx.de>**20070910113835
 
 Rename delete to delete' so we can clear floating status in delete,
 thus removing one special handling. 
 At the moment delete' is only used in shift, but is useful for temporarily
 removing a window from the stack.
] 
[update description field of cabal file
Don Stewart <dons@galois.com>**20070916023016] 
[move Layout stuff into class (hokey first cut).
David Roundy <droundy@darcs.net>**20070914215959] 
[pointfree looks nicer here
Don Stewart <dons@cse.unsw.edu.au>**20070911051928] 
[Remove redundant reveal
Spencer Janssen <sjanssen@cse.unl.edu>**20070910213807] 
[Add missing insert markers for generate-configs.sh in Config.hs
Alex Tarkovsky <alextarkovsky@gmail.com>**20070907120414] 
[Move lower boundary check into applySizeHints, because all users of applySizeHints
Karsten Schoelzel <kuser@gmx.de>**20070905192125
 do this manually.
] 
[export getAtom from XMonad.
Ivan Tarasov <Ivan.Tarasov@gmail.com>**20070825174156] 
[Use show rather than string hacks
Spencer Janssen <sjanssen@cse.unl.edu>**20070905202816] 
[switch WorkspaceId to String.
David Roundy <droundy@darcs.net>**20070820113658] 
[Alex Tarkovsky's docstring patch updated for conflicts
Spencer Janssen <sjanssen@cse.unl.edu>**20070905193558] 
[tasks done
Don Stewart <dons@cse.unsw.edu.au>**20070905004901] 
[TAG 0.3
Spencer Janssen <sjanssen@cse.unl.edu>**20070904195245] 
Patch bundle hash:
faa76879f82645f648308b396eaf042a8dc81d96
