Re: [hackers] Re: [dwm][PATCH v3] manage: For isfloating/oldstate check/set, ensure trans client actually exists

From: Chris Down <chris_AT_chrisdown.name>
Date: Mon, 21 Mar 2022 10:19:55 -0400

Hi Miles,

Miles Alan writes:
>Interesting - thanks for reporting. I'd be curious what WM_TRANSIENT_FOR
>is set to in pinentry's case. The case I'm trying to address is resizable
>SDL applications which, as mentioned earlier, wholesale set WM_TRANSIENT_FOR
>to the root window. I'm not sure on the correct behavior / if this patch
>is correct or not. Essentially this patch changes things so that if
>WM_TRANSIENT_FOR is an invalid window (doesn't map to a client), then
>the window won't be treated as floating (as is it really "transient"
>in that case.. vs just being a separate top-level window?).

WM_TRANSIENT_FOR is set to the root window in the pinentry's case:

     % xprop | grep TRANSIENT
     WM_TRANSIENT_FOR(WINDOW): window id # 0x523
     % xwininfo -root -tree | grep 0x523
     xwininfo: Window id: 0x523 (the root window) (has no name)
     Root window id: 0x523 (the root window) (has no name)

I see the following practical text in wm-spec related to this[0]:

>If the WM_TRANSIENT_FOR property is set to None or Root window, the window
>should be treated as a transient for all other windows in the same group. It
>has been noted that this is a slight ICCCM violation, but as this behavior is
>pretty standard for many toolkits and window managers, and is extremely
>unlikely to break anything, it seems reasonable to document it as standard.

0: https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm45623487728576
Received on Mon Mar 21 2022 - 15:19:55 CET

This archive was generated by hypermail 2.3.0 : Wed Mar 23 2022 - 03:00:36 CET