[xmonad] ManageHook and child windows

Raghavendra D Prabhu raghu.prabhu13 at gmail.com
Mon Jun 25 13:47:03 CEST 2012


Hi,


* On Mon, Jun 25, 2012 at 04:43:23PM +0530, Raghavendra D Prabhu <raghu.prabhu13 at gmail.com> wrote:
>Hi,
>
>
>* On Sun, Jun 24, 2012 at 12:56:10PM -0400, adam vogt <vogt.adam at gmail.com> wrote:
>>On Sat, Jun 23, 2012 at 2:30 PM, Raghavendra D Prabhu
>><raghu.prabhu13 at gmail.com> wrote:
>>>Hi,
>>>
>>>I am using ManageHook to assign windows to workspaces; however, sometimes I
>>>tend to move the window to other workspace and after that happens, any
>>>dialog/child window  of this window appears in the original assigned
>>>workspace and not in the new workspace.
>>>
>>>Is there a way to fix / workaround this?
>>
>>Hi Raghavendra,
>>
>>If you run xprop on the dialog windows you find a property like:
>>WM_TRANSIENT_FOR(WINDOW): window id # 0x7c00006
>>
>>If that's the case, you can use the transience' defined in
>>XMonad.Hooks.ManageHelpers, putting it as the left-most managehook
>>(that is,         manageHook = composeAll [ transience' , className =?
>>"a" --> doShift "b", ... ] )
>>
>>http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Hooks-ManageHelpers.html
>>
>>Adam
>>
>>_______________________________________________
>
>Thanks, I had tried transience before, albeit for a different purpose 
>I think, let me give it a shot again.
>
>Thanks.
>
>>xmonad mailing list
>>xmonad at haskell.org
>>http://www.haskell.org/mailman/listinfo/xmonad
>
>
>
>

So, I tried it, it doesn't work for windows like the preferences 
window of firefox. The reason being that they don't have 
transient property in their xprop output.

However, I did notice  WM_CLIENT_LEADER on both windows pointing 
to same id (that of parent). Further searching lead me to http://tronche.com/gui/x/icccm/sec-5.html


""
All top-level, non-transient windows created by a client on the same display as the client leader must have a WM_CLIENT_LEADER property. This property contains a window ID that identifies the client leader window. The client leader window must have a WM_CLIENT_LEADER property containing its own window ID (i.e. the client leader window is pointing to itself). Transient windows need not have a WM_CLIENT_LEADER property if the client leader can be determined using the information in the WM_TRANSIENT_FOR property
""

Now, I checked the code and noticed a  getTransientForHint being 
used to check for this. Is there a way to add the above to it?






Regards,
-- 
Raghavendra Prabhu
GPG Id : 0xD72BE977
Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977
www: wnohang.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/xmonad/attachments/20120625/5049f5f3/attachment.pgp>


More information about the xmonad mailing list