New patches: [float fixed size windows Peter De Wachter **20070618214657] { hunk ./Operations.hs 58 + sh <- io $ getWMNormalHints d w + let isFixedSize = sh_min_size sh /= Nothing && sh_min_size sh == sh_max_size sh hunk ./Operations.hs 61 - if isTransient + if isFixedSize || isTransient } Context: [Remove all references to 'exec' Spencer Janssen **20070618201532] [-Wall police, and turn on -fno-warn-orphans Don Stewart **20070617052322] [make workspace tag not need to be a Num. David Roundy **20070614140709 This change also removes the barely used 'size' field, and replaces it with a tagMember predicate. The idea is to move towards the ability to make the workspace tag be a String, which by default might be "1".."9", but could also be customized to be something meaningful to the user. ] [Fix float stacking Spencer Janssen **20070614213412] [Remove 'temporary work around' in 'windows' Spencer Janssen **20070614211450] [haddock tuning for StackSet.hs Andrea Rossato **20070614064511 with this patch the documentation of StackSet.hs will have a nice TOC ] [move initColor to Operations and only store the Pixel value of colors Jason Creighton **20070613234501 Moving initColor to Operations allows it to be used by extensions. The Pixel component of the color is the only thing we need, so it's simpler just to deal with that. ] [haddick fine tuning Andrea Rossato **20070613185902] [Indentation Spencer Janssen **20070613043018] [prevent keyboard focus from getting lost in some cases Jason Creighton **20070613025350] [resolve conflict in Operations. David Roundy **20070612170625] [add catchX to catch exceptions. David Roundy **20070612154253] [make focus, up and down complete functions. David Roundy **20070612150555 This is a rerun of my change to make (Stack a) never be empty. Gives us more type-safety. ] [add differentiate function to StackSet to go [a] -> Stack a. David Roundy **20070612132853] [Make 'view' a total function Spencer Janssen **20070612143248] [fmt Don Stewart **20070612134938] [-Wall police Stefan O'Rear **20070612060546] [Use a more descriptive name for the layout reversal message Stefan O'Rear **20070612055859] [Use broadcastMessage in windows and switchLayout, should improve Xinerama for tabbed and make xmonad robust in the presence of state-altering unlayout hooks Stefan O'Rear **20070612055510] [Add a broadcastMessage function, which sends to all visible workspaces without refreshing. (+6 loc) Stefan O'Rear **20070612055339] [TODO for scan Spencer Janssen **20070611214217] [Set withdrawn state after calling windows Spencer Janssen **20070611213327] [Remove obsolete 'layout' function Spencer Janssen **20070611203622] [-Wall police Spencer Janssen **20070611202007] [Comment only Spencer Janssen **20070611195827] [Hide windows that are not supposed to be visible Spencer Janssen **20070611191809] [-Wall police Spencer Janssen **20070611185708] [API CHANGE: Give doLayout a Stack rather than a flattened list Spencer Janssen **20070611182629] [-Wall police Spencer Janssen **20070611180123] [Add StackSet.filter Spencer Janssen **20070611165154] [Use catchIO in 'restart' Spencer Janssen **20070611161152] [Rename safeIO to catchIO Spencer Janssen **20070611160608] [add safeIO which catches and logs exceptions. David Roundy **20070611153650] [Ensure windows get at least 1 pixel for width/height Spencer Janssen **20070611061930] [Restrict the master/slave ratio to [0, 1] Spencer Janssen **20070611053230] [comment only Jason Creighton **20070611020249] [a few modifications to event-sending to make Tabbed layout work. David Roundy **20070610153836] [send message when "windows" is called. David Roundy **20070610013531] [implement Spencer's decoration suggestion. David Roundy **20070610012237] [haddock compatibility Andrea Rossato **20070610123746] [Move state logging into Config.hs, via logHook :: X () Don Stewart **20070610061932] [polish serialisation code (-7 lines) Don Stewart **20070610045551] [cut incorrect comment. David Roundy **20070609173447] [doLayout cleanup and commented exception-handling. David Roundy **20070609145036] [Give refresh sole responsibility for establishing window properties (-3 loc) Stefan O'Rear *-20070609185835] [Give refresh sole responsibility for establishing window properties (-3 loc) Stefan O'Rear **20070609185835] [HEADS UP: (logging format change). use a custom pretty printer, for an easier format to parse, than 'show' produces Don Stewart **20070609131716] [Add notes on using X11-extras from darcs Don Stewart **20070609025045] [Fix unmap handling Spencer Janssen **20070606214006 According to the ICCCM, clients should send a synthetic unmap event when they initiate an unmap. The old code waited for these synthetic unmaps to unmanage windows. However, certain 'obsolete' clients do not send synthetic unmaps (notably xpdf's find dialog). These windows entered a zombified state: xmonad does not manage them, yet they are still mapped and raised on screen. The new algorithm (derived from wmii): - track windows that are mapped on screen - track the number of expected unmap events for each window, increment every time 'hide' is called on a window that is not mapped. - decrement the expected unmap counter on each unmap event - treat an unmap event as genuine (ie. unmap the window) when: - the event is synthetic (per ICCCM) - OR there are no expected unmap events for this window ] [dead import Don Stewart **20070606025226] [move extraModifiers/cleanMask to Operations.hs Jason Creighton **20070606005056 so XMonadContrib can use them ] [temporary workaround for delete/focus issue in fullscreen mode Don Stewart **20070606024938] [whitespace Don Stewart **20070606024857] [simplify code Don Stewart **20070606004603] [mention why StackSet needs -fglasgow-exts (for deriving Typeable) Don Stewart **20070605092659] [comments only Don Stewart **20070605091803] [clean size hint code Don Stewart **20070605091354] [Enable logging of state changes to stdout Don Stewart **20070605083735] [remove accidental logging of events Don Stewart **20070605081452] [Fix lost eventNotifyMask bug Don Stewart **20070605043040 When resuming, we were (implicitly) relying on 'scan' to find all windows, and reset their event masks and WM_STATE. When we moved to Iconfified hidden workspaces, 'scan' would only find and reset states on the current workspace. The result being that hidden workspace windows no longer received enterNotify events. Fix this by traversing the StackSet serialised during a restart, setting the intial X states for each window, whether visible or hidden. ] [whitespace only Don Stewart **20070605000723] [Comment only Spencer Janssen **20070604211956] [Wibble. Spencer Janssen **20070604211816] [-Wall police Spencer Janssen **20070604211531] [Delete stale comment Spencer Janssen **20070604204617] [Comment only Spencer Janssen **20070604203659] [Use 'windows' in 'focus' Spencer Janssen **20070604201639] [realign guard**20070604182045] [swapUp/Down are also mirrored Spencer Janssen **20070604183535] [Remove redundant cases in swapUp/Down Spencer Janssen **20070604183344] [focusUp/Down are the same, in reversed order Spencer Janssen **20070604183143] [Simplify focusUp/Down Spencer Janssen **20070604182228] [apply size hints to floating windows Peter De Wachter **20070604192943] [size hints infrastructure Peter De Wachter **20070604192753] [Integral implies Eq Spencer Janssen **20070604180745] [Comment typo. Spencer Janssen **20070604180554] [Dump state at launch (commented for now) Spencer Janssen **20070604162450] [Small clean up Spencer Janssen **20070604064418] [Merge windows and refresh Spencer Janssen **20070604063657] [Use the new integrate function Spencer Janssen **20070604062653] [Add integrate Spencer Janssen **20070604062501] [Delete stale comments Spencer Janssen **20070604061719] [Remove inaccurate warnings about 'hide' Spencer Janssen **20070604060611] [base >= 2.0 means we can use forM_ Spencer Janssen **20070604050914] [Remove no-longer-needed 'dimensions' state (-5 loc) Stefan O'Rear **20070604044715] [Set WM_STATE, iconify invisible windows (+9 loc) Stefan O'Rear **20070604042343 Note that this breaks compatibility with certain programs described as "obsolete" in the ICCCM (1994). See the command above the UnmapEvent handler for details. ] [clean up Main.hs slightly Don Stewart **20070604035637] [whitespace Don Stewart **20070604015532] [-Wall Don Stewart **20070604014630] [do not cache atom values within Xmonad, instead let Xlib worry about caching (a documented feature) Stefan O'Rear **20070604013938] [Honor configure requests from unmanaged windows Spencer Janssen **20070603234730] [-Wall police Spencer Janssen **20070603212055] [Correctly handle resize requests (-12 +22) Stefan O'Rear **20070603203153 Xmonad now implements resize requests in a consistent manner. * If the window is FLOATING, we implement the program's request, and correctly update the StackSet; so it will keep the new size. This should work correctly even for non-current windows. * Otherwise, we ignore the request. As per ICCCM, we send a fake ConfigureNotify containing the new (unchanged) geometry. This is perfectly ICCCM compliant, and if it breaks your client, it's your own fault. This patch requires setConfigureEvent, which is added to X11-extras by a patch approximately contemporaneous with this one. ] [comments only Don Stewart **20070603071556] [Polish core layout code. Lifts limitation on nmaster > 1. it may be 0 now Don Stewart **20070603064306] [heads up: polish config.hs. moves tiling-local values into lexical scope. removes `wide' as an explicit mode (it's `mirror tall') Don Stewart **20070603054740] [set build-depends base>=2.0 so people can't miss the missing Read instance issue Don Stewart **20070603032319] [Fix out-of-date comment in Config.hs. Chris Mears **20070602114312] [only grab button{1,2,3} for click-to-focus (scrollwheel shouldn't focus) Jason Creighton **20070602052605] [make mouse bindings configurable Jason Creighton **20070602040647] [commented out implementation state logging. if someone has a client, we can enable this Don Stewart **20070601085626] [ignore numlock/capslock on mouse bindings Jason Creighton **20070601015137] [now we handle transients properly, and restack windows, refresh from focus is ok Don Stewart **20070601022329] [Rename withWorkspace to withWindowSet.**20070601001325] [Revert accidental change to border color Spencer Janssen **20070531145509] [comments on why fullscreen tiling doesn't work with `implicit' floating Don Stewart **20070531090537] [clean up mouse code a bit Don Stewart **20070531085308] [first shot at a floating layer Jason Creighton **20070531044733 This is a first attempting at a floating layer: mod-button1: move window mod-button2: swapMaster mod-button3: resize window mod-t: make floating window tiled again Moving or resizing a window automatically makes it floating. Known issues: Hard to manage stacking order. You can promote a window to move it to the top, (which you can do with mod-button2) but it should be easier than that. Moving a window by dragging it to a different Xinerama screen does not move it to that workspace. Code is ugly. ] [remove LOC cap (but still print count after tests) Jason Creighton **20070531043417] [TAG 0.2 Spencer Janssen **20070531010004] Patch bundle hash: 423062713625acffb9b1d918e3092fbef99177a1