[xmonad] darcs patch: Add windowRemover for make tabbed return just the focu...

Andrea Rossato mailing_list at istitutocolli.org
Mon Feb 4 10:19:36 EST 2008

On Sun, Feb 03, 2008 at 08:25:55PM -0500, David Roundy wrote:
> I also added support for mouse clicking into Decoration, so that
> (modulo the need to avoid the broadcastMessage patch that breaks mouse
> support for tabbed anyhow) we now have fully functional tabs.

this part of the patch rises, I think, quite an interesting issue. I
think that we should keep ordering information unique throughout the
system, and *only* in the stack. I think Don will agree with me on
this point.

There is just one exception in the windowArranger. But from a
practical perspective this only means that the arranged window (a
window whose geometry has been modified by a user message sent to the
arranger) will not change its position on the screen if you swap it in
the stack. But it got swapped. 

Anyway, any modifier can trust the fact the focused window in the
stack *is* the focused window, the first in the [(w,r)] (or the second
if the first is a decoration).

Your patch breaks this design and after Decoration the stack we pass
to modifiers (redoLayout, etc) cannot be trusted anymore, which, I
think, is bad. We could remove the stack from the type signature of
those methods and just change our perspective, as you probably did.
maybe this way is better. I don't know, but we should be consistent
somehow, is which case this patch would be not enough.

Just my 2 cents.


ps: as you may observe, here I'm proposing to set aside the idea that a
layout is a monolithic object, defined in a specific place in our
source code. I think this is not scalable anymore, not when we start
adding decorations and all that. Instead, we should create smaller
components and put them together to create layouts. But we must hide
everything to our users.

More information about the xmonad mailing list