Introduction
Introduction Statistics Contact Development Disclaimer Help
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
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.