Mon Sep 10 00:04:04 CEST 2007 Karsten Schoelzel <kuser@gmx.de> * Fix float in Operations.hs First, if float is called with window which is on a hidden workspace, then the window will remain on that hidden workspace. Let's have 2 screens s1 and s2 with windows [ a* ] and [ b*, c, d ], and the upper-left corner of d is on s1 (i'm not sure if this can happen with the current functions) Now call (float d). Then d becomes floating on s1 and the screens look like - [ d, a* ] and [ b, c* ] without the use of shiftWin - [ d, a* ] and [ b*, c ] with shiftWin thus leaving focus intact on the second screen. Mon Sep 10 00:29:30 CEST 2007 Karsten Schoelzel <kuser@gmx.de> * More focus fixes. Okay fix the focus with float once more. The following will hold now: - the currently focused window won't loose the focus - the window which gets floated, will be the focused window on the target workspace, unless it gets to the current screen, which was non-empty before, and wasn't the focused window on the current screen - if float moves a window from a workspace X to another one, the focus on X will be as if X was simply shifted away The behaviour seems to be quite complicated :-( Mon Sep 10 00:44:38 CEST 2007 Karsten Schoelzel <kuser@gmx.de> * Float focus final fix 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