manage: For isfloating/oldstate check/set, ensure trans client actually exists

In certain instances trans may be set to a window that doesn't actually
map to a client via wintoclient; in this case it doesn't make sense
to set isfloating/oldstate since trans is essentially invalid in that
case / correlates to the above condition check where trans is set /
XGetTransientForHint is called.
This commit is contained in:
Miles Alan 2022-02-21 01:10:56 -05:00 committed by Hiltjo Posthuma
parent 60e9a14998
commit bece862a0f

2
dwm.c
View File

@ -1064,7 +1064,7 @@ manage(Window w, XWindowAttributes *wa)
XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
grabbuttons(c, 0);
if (!c->isfloating)
c->isfloating = c->oldstate = trans != None || c->isfixed;
c->isfloating = c->oldstate = t || c->isfixed;
if (c->isfloating)
XRaiseWindow(dpy, c->win);
attach(c);