tnew resize stuff (using XConfigureWindow instead of XSendEvent) - dwm - [fork]… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 52021851d1fd78970dfe63380d51b87f57d1ee1b | |
parent 080a38d62d18be2ab98f66ed190d3d9e3463fec9 | |
Author: [email protected] <unknown> | |
Date: Wed, 2 Aug 2006 10:43:21 +0200 | |
new resize stuff (using XConfigureWindow instead of XSendEvent) | |
Diffstat: | |
M client.c | 30 +++++++++++------------------- | |
M event.c | 23 ++++++++++------------- | |
2 files changed, 21 insertions(+), 32 deletions(-) | |
--- | |
diff --git a/client.c b/client.c | |
t@@ -271,7 +271,7 @@ resize(Client *c, Bool sizehints, Corner sticky) | |
{ | |
int bottom = c->y + c->h; | |
int right = c->x + c->w; | |
- XConfigureEvent e; | |
+ XWindowChanges wc; | |
if(sizehints) { | |
if(c->incw) | |
t@@ -287,30 +287,22 @@ resize(Client *c, Bool sizehints, Corner sticky) | |
if(c->maxh && c->h > c->maxh) | |
c->h = c->maxh; | |
} | |
- if(c->x > sw) /* might happen on restart */ | |
- c->x = sw - c->w; | |
- if(c->y > sh) | |
- c->y = sh - c->h; | |
if(sticky == TopRight || sticky == BotRight) | |
c->x = right - c->w; | |
if(sticky == BotLeft || sticky == BotRight) | |
c->y = bottom - c->h; | |
resizetitle(c); | |
- XSetWindowBorderWidth(dpy, c->win, 1); | |
- XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); | |
- | |
- e.type = ConfigureNotify; | |
- e.event = c->win; | |
- e.window = c->win; | |
- e.x = c->x; | |
- e.y = c->y; | |
- e.width = c->w; | |
- e.height = c->h; | |
- e.border_width = c->border; | |
- e.above = None; | |
- e.override_redirect = False; | |
- XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&e); | |
+ | |
+ if(c->tags[tsel]) | |
+ wc.x = c->x; | |
+ else | |
+ wc.x = c->x + 2 * sw; | |
+ wc.y = c->y; | |
+ wc.width = c->w; | |
+ wc.height = c->h; | |
+ wc.border_width = 1; | |
+ XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, … | |
XSync(dpy, False); | |
} | |
diff --git a/event.c b/event.c | |
t@@ -153,7 +153,6 @@ configurerequest(XEvent *e) | |
XConfigureRequestEvent *ev = &e->xconfigurerequest; | |
XWindowChanges wc; | |
- ev->value_mask &= ~CWSibling; | |
if((c = getclient(ev->window))) { | |
gravitate(c, True); | |
if(ev->value_mask & CWX) | |
t@@ -169,18 +168,16 @@ configurerequest(XEvent *e) | |
gravitate(c, False); | |
resize(c, True, TopLeft); | |
} | |
- | |
- wc.x = ev->x; | |
- wc.y = ev->y; | |
- wc.width = ev->width; | |
- wc.height = ev->height; | |
- wc.border_width = 1; | |
- wc.sibling = None; | |
- wc.stack_mode = Above; | |
- ev->value_mask &= ~CWStackMode; | |
- ev->value_mask |= CWBorderWidth; | |
- XConfigureWindow(dpy, ev->window, ev->value_mask, &wc); | |
- XSync(dpy, False); | |
+ else { | |
+ wc.x = ev->x; | |
+ wc.y = ev->y; | |
+ wc.width = ev->width; | |
+ wc.height = ev->height; | |
+ wc.border_width = 1; | |
+ XConfigureWindow(dpy, ev->window, | |
+ CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc); | |
+ XSync(dpy, False); | |
+ } | |
} | |
static void |