[xmonad] ManageHook and child windows
Raghavendra D Prabhu
raghu.prabhu13 at gmail.com
Mon Jul 9 21:45:31 CEST 2012
* On Mon, Jul 09, 2012 at 02:50:05PM -0400, Brandon Allbery <allbery.b at gmail.com> wrote:
>On Mon, Jul 9, 2012 at 2:25 PM, Raghavendra D Prabhu <
>raghu.prabhu13 at gmail.com> wrote:
>> So, after the previous post I did some digging in the code.
>> getTransientForHint is from Graphics.X11.Xlib.Extras haskell library.
>Yes. Do not expect that the X11 binding will be changed to add this;
>that's the wrong place to put it.
>> So there are two ways to fix this:
>> 1. Fix in libX11 by adding another function or fixing existing one.
>> 2. Fixing getTransientForHint in G.X.X11.Extras by adding another
>> condition to check for WM_CLIENT_LEADER according to ICCWM specs.
>And then there's the correct one: extend the *user* of this function, in
>ManageHelpers, to also do the WM_CLIENT_LEADER check.
>Modifying a low level X11 binding to do something the bound library does
>not, namely adding WM_CLIENT_LEADER to a function which is documented to
>only do WM_TRANSIENT_FOR, is the wrong place to put this.
Yes, modifying the manageHelpers would be better and correct;
applying same logic modifying either transience or transientTo
in ManageHelpers would be incorrect as well (since transience has
nothing to do with WM_CLIENT_LEADER), so basically logic (as new
ManageHook) needs to be added which moves child windows to
parent's workspace based on latter's window id (with interface similar to Query( Maybe
Window)) after making sure WM_CLIENT_LEADER is set and window-id
!= WM_CLIENT_LEADER property value (to avoid the loop).
>brandon s allbery allbery.b at gmail.com
>wandering unix systems administrator (available) (412) 475-9364 vm/sms
>xmonad mailing list
>xmonad at haskell.org
GPG Id : 0xD72BE977
Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 490 bytes
Desc: not available
More information about the xmonad