dwm

dynamic window manager
git clone git://git.suckless.org/dwm
Log | Files | Refs | README | LICENSE

commit 3167373512c562f8f040203d2ee29084c76d00a0
parent 4cff744438a8ee1dc3928503a297c73cc9ad96d0
Author: Anselm R. Garbe <arg@suckless.org>
Date:   Mon, 19 Feb 2007 11:03:27 +0100

fixed configurerequest according to the problem Jukka reported
Diffstat:
Mevent.c | 27++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/event.c b/event.c @@ -165,6 +165,7 @@ buttonpress(XEvent *e) { static void configurerequest(XEvent *e) { + int x, y, w, h; Client *c; XConfigureRequestEvent *ev = &e->xconfigurerequest; XWindowChanges wc; @@ -174,20 +175,24 @@ configurerequest(XEvent *e) { if(ev->value_mask & CWBorderWidth) c->border = ev->border_width; if(c->isfixed || c->isfloat || (arrange == dofloat)) { - if(ev->value_mask & CWX) - c->x = ev->x; - if(ev->value_mask & CWY) - c->y = ev->y; - if(ev->value_mask & CWWidth) - c->w = ev->width; - if(ev->value_mask & CWHeight) - c->h = ev->height; + x = (ev->value_mask & CWX) ? ev->x : c->x; + y = (ev->value_mask & CWY) ? ev->y : c->y; + w = (ev->value_mask & CWWidth) ? ev->width : c->w; + h = (ev->value_mask & CWHeight) ? ev->height : c->h; if((ev->value_mask & (CWX | CWY)) && !(ev->value_mask & (CWWidth | CWHeight))) + { + c->x = x; + c->y = y; configure(c); - resize(c, c->x, c->y, c->w, c->h, False); - if(!isvisible(c)) - ban(c); + if(isvisible(c)) + XMoveWindow(dpy, c->win, c->x, c->y); + } + else { + resize(c, x, y, w, h, False); + if(!isvisible(c)) + ban(c); + } } else configure(c);