
Hi,
* On Mon, Jul 09, 2012 at 02:50:05PM -0400, Brandon Allbery
On Mon, Jul 9, 2012 at 2:25 PM, Raghavendra D Prabhu < raghu.prabhu13@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@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms
_______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad
Regards, -- Raghavendra Prabhu GPG Id : 0xD72BE977 Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977 www: wnohang.net