I've just tested your hack and it worked, but not very well.
When I placed a floating window on a tabbed workspace, changed the focus from floating and tiled alternately, it worked as expected.
But when I closed the floating window, the tiled windows just switched as before, which is not a big problem.
The real problem happened when I tried to float a tiled window, xmonad got crazy.
xmonad process got a 100% usage on a core and the 'screen' were not updated anymore, only the later window had the focus. No way to change the focus or do anything.
Hopefully this window I tried to float were a terminal and was able to kill xmonad and re-run it without kill X or logging ssh.
(xmonad --restart didn't worked)

Anyway, this switching focus problem is really annoying.
I'm willing to test anymore hacks you build :P

Henrique G. Abreu


On Wed, Jun 10, 2009 at 15:24, Konstantin Sobolev <konstantin.sobolev@gmail.com> wrote:
Hi

On Sat, May 30, 2009 at 10:32 PM, Adam Vogt<vogt.adam@gmail.com> wrote:
>>In the other words you can't switch tabs after you've added a floating
>>window: as soon as floating gets focus again, tabbed restores it's
>>state as it was before the floating window was added.
>>It's quite annoying and I'd like to fix it, but X.L.Decoration logic
>>is too complicated to me. Or maybe I should look at some other place?
>
> This affects all layouts as far as I can tell. I suspect it has something
> to do with this defect:
> http://code.google.com/p/xmonad/issues/detail?id=4

OK, attached is a hack from my xmonad.hs

The idea is very dumb: I essentially intercept runLayout and memorize
last focused window w from passed Stack such that w ==
current->workspace->stack->focus ,i.e. if a window actually having
focus is the one focused in Stack. Then as soon as focused window is
floating I change Stack's focus (back) to w.

Seems to work for me: tabbed no longer switches tabs by itself when
there're floating windows around.

_______________________________________________
xmonad mailing list
xmonad@haskell.org
http://www.haskell.org/mailman/listinfo/xmonad