bugfix of transient handling
parent
e9c49ddd7a
commit
df9fd28f9a
16
client.c
16
client.c
|
@ -240,24 +240,24 @@ manage(Window w, XWindowAttributes *wa) {
|
||||||
c->y = way;
|
c->y = way;
|
||||||
}
|
}
|
||||||
updatesizehints(c);
|
updatesizehints(c);
|
||||||
XSelectInput(dpy, c->win,
|
XSelectInput(dpy, w,
|
||||||
StructureNotifyMask | PropertyChangeMask | EnterWindowMask);
|
StructureNotifyMask | PropertyChangeMask | EnterWindowMask);
|
||||||
XGetTransientForHint(dpy, c->win, &trans);
|
XGetTransientForHint(dpy, w, &trans);
|
||||||
grabbuttons(c, False);
|
grabbuttons(c, False);
|
||||||
wc.border_width = c->border;
|
wc.border_width = c->border;
|
||||||
XConfigureWindow(dpy, c->win, CWBorderWidth, &wc);
|
XConfigureWindow(dpy, w, CWBorderWidth, &wc);
|
||||||
XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
|
XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
|
||||||
configure(c); /* propagates border_width, if size doesn't change */
|
configure(c); /* propagates border_width, if size doesn't change */
|
||||||
updatetitle(c);
|
updatetitle(c);
|
||||||
for(t = clients; t && t->win != c->win; t = t->next);
|
for(t = clients; t && t->win != trans; t = t->next);
|
||||||
settags(c, t);
|
settags(c, t);
|
||||||
if(!c->isfloat)
|
if(!c->isfloat)
|
||||||
c->isfloat = (t != 0) || c->isfixed;
|
c->isfloat = (t != NULL) || c->isfixed;
|
||||||
attach(c);
|
attach(c);
|
||||||
attachstack(c);
|
attachstack(c);
|
||||||
c->isbanned = True;
|
c->isbanned = True;
|
||||||
XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
|
XMoveWindow(dpy, w, c->x + 2 * sw, c->y);
|
||||||
XMapWindow(dpy, c->win);
|
XMapWindow(dpy, w);
|
||||||
setclientstate(c, NormalState);
|
setclientstate(c, NormalState);
|
||||||
if(isvisible(c))
|
if(isvisible(c))
|
||||||
focus(c);
|
focus(c);
|
||||||
|
|
Loading…
Reference in New Issue