-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi list,

when switching to another tag, all windows which are not visible on that new tag
need to be hidden. This is called "banning" those clients and this mail is how
to do it best. There are two possibilities:

Unmapping banned windows, no reparenting
- ----------------------------------------
This works with all pagers.
Problem here is that unmapping those windows generates UnmapNotify events. Those
events are also generated when an application wants to hide its window, which
means we have to stop managing the window because it was destroyed (from the WM
point of view).

The problem here is that we cannot tell the difference between UnmapNotify
events which are caused by awesome and those which are generated by
applications. We currently solve this by ignoring some of those events, but this
causes bugs like FS#399.

Unmapping banned windows, reparenting
- ------------------------------------
This is what fluxbox does. Thanks to the reparenting, the WM can tell the
difference between "the frame window is unmapped" (always caused by the WM
itself and can be ignored) and "the actual client window is unmapped" (never
caused by the WM, this always means we have to unmanage the window).

So, if we want to go down this route *and* fix FS#399, we would have to make
awesome a reparenting WM. (Perhaps with a frame window as big as the client
window which would make it basically invisible?)

Moving the window out of the visible screen region
- --------------------------------------------------
This is how e.g. dwm does it. When a client needs to be banned, it's just moved
offscreen and the user cannot see it anymore.
The problem here is that this breaks pagers. A pager that wants to find out
where the window is placed sees that it's offscreen and thus does not draw it.

The good thing about this is that there are no UnmapNotify events caused by
awesome since there are no unmaps. So whenever we receive a UnmapNotify, we have
to unmanage the window.

The pager problem stays and I think that one is unfixable. :(


So, any suggestions how windows should be banned?
The only way I can see for fixing this is reparenting, how much would I be
killed if I introduced that reparenting?

In other news, what's the state of FS#636 "Add reparenting support between wibox
and clients"? Could this be used as a fix?

Uli
- -- 
- - Buck, when, exactly, did you lose your mind?
- - Three months ago. I woke up one morning married to a pineapple.
  An ugly pineapple... But I loved her!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQEcBAEBCAAGBQJMF9BPAAoJECLkKOvLj8sGT6sIAJYpdrGZ9+9o45B8bKvMYs5M
DjBoKf1Gu6+taRgiH7NYzaYvIJ3FJ7J8DMkCWohoKph/8tr1uUH/Jp8c80i/MRTx
Q2F+ymlaLLfJ2BVGJNBauqYuMbdxCbQ9CYMxpP9zfMsGlPIOKtgF+IOy1gaHHlX3
wE7hxtTiUG6tyRmJE3B7F+OWweyeG60d58Ro1ds0GOnC+tLhOVatf6P/pTfhQtT9
aF/fIq1AKQxbqdZcPvEc39lqGdKIqMTwmq/F0qQfOPgkcRyG3K4lvZlVzw3V87fe
3gK+ZNMrI7eqj4CyrD5Rsiz/K/XOoVtUFzR3OohPrpfjus50Ww4x66FiGiMRQ8I=
=uyfv
-----END PGP SIGNATURE-----

-- 
To unsubscribe, send mail to [email protected].

Reply via email to