tfixed configurerequest according to the problem Jukka reported - dwm - [fork] … | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 3167373512c562f8f040203d2ee29084c76d00a0 | |
parent 4cff744438a8ee1dc3928503a297c73cc9ad96d0 | |
Author: Anselm R. Garbe <[email protected]> | |
Date: Mon, 19 Feb 2007 11:03:27 +0100 | |
fixed configurerequest according to the problem Jukka reported | |
Diffstat: | |
M event.c | 27 ++++++++++++++++----------- | |
1 file changed, 16 insertions(+), 11 deletions(-) | |
--- | |
diff --git a/event.c b/event.c | |
t@@ -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; | |
t@@ -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); |