better handling of top/active

This commit is contained in:
rsc 2004-08-13 14:23:41 +00:00
parent 2c1b986edf
commit bdf49b7ee0

View file

@ -130,6 +130,12 @@ configurereq(XConfigureRequestEvent *e)
if (e->value_mask & CWBorderWidth) if (e->value_mask & CWBorderWidth)
c->border = e->border_width; c->border = e->border_width;
gravitate(c, 0); gravitate(c, 0);
if (e->value_mask & CWStackMode) {
if (e->detail == Above)
top(c);
else
e->value_mask &= ~CWStackMode;
}
if (c->parent != c->screen->root && c->window == e->window) { if (c->parent != c->screen->root && c->window == e->window) {
wc.x = c->x-BORDER; wc.x = c->x-BORDER;
wc.y = c->y-BORDER; wc.y = c->y-BORDER;
@ -140,13 +146,10 @@ configurereq(XConfigureRequestEvent *e)
wc.stack_mode = e->detail; wc.stack_mode = e->detail;
XConfigureWindow(dpy, c->parent, e->value_mask, &wc); XConfigureWindow(dpy, c->parent, e->value_mask, &wc);
sendconfig(c); sendconfig(c);
} if (e->value_mask & CWStackMode) {
if (e->value_mask & CWStackMode) {
if (wc.stack_mode == Above) {
top(c); top(c);
active(c); active(c);
}else }
e->value_mask &= ~CWStackMode;
} }
} }