tsimplified mouse resizals - dwm - [fork] customized build of dwm, the dynamic … | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit bcb07de75000e75a450e4dddf851e9ce69966f59 | |
parent 7d7cde0fd6ceae2f7d759b924afd8df279a4ddde | |
Author: arg@mmvi <unknown> | |
Date: Mon, 25 Sep 2006 21:19:18 +0200 | |
simplified mouse resizals | |
Diffstat: | |
M event.c | 59 +++++++++--------------------… | |
1 file changed, 16 insertions(+), 43 deletions(-) | |
--- | |
diff --git a/event.c b/event.c | |
t@@ -21,23 +21,6 @@ KEYS | |
#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask)) | |
static void | |
-synconfig(Client *c, int x, int y, int w, int h, unsigned int border) { | |
- XEvent synev; | |
- | |
- synev.type = ConfigureNotify; | |
- synev.xconfigure.display = dpy; | |
- synev.xconfigure.event = c->win; | |
- synev.xconfigure.window = c->win; | |
- synev.xconfigure.x = x; | |
- synev.xconfigure.y = y; | |
- synev.xconfigure.width = w; | |
- synev.xconfigure.height = h; | |
- synev.xconfigure.border_width = border; | |
- synev.xconfigure.above = None; | |
- XSendEvent(dpy, c->win, True, NoEventMask, &synev); | |
-} | |
- | |
-static void | |
movemouse(Client *c) { | |
int x1, y1, ocx, ocy, di; | |
unsigned int dui; | |
t@@ -52,14 +35,8 @@ movemouse(Client *c) { | |
c->ismax = False; | |
XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); | |
for(;;) { | |
- XMaskEvent(dpy, MOUSEMASK | ExposureMask | StructureNotifyMask… | |
+ XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev); | |
switch (ev.type) { | |
- default: | |
- break; | |
- case ConfigureRequest: | |
- synconfig(c, c->x, c->y, c->w, c->h, ev.xconfigure.bor… | |
- XSync(dpy, False); | |
- break; | |
case Expose: | |
handler[Expose](&ev); | |
break; | |
t@@ -72,11 +49,6 @@ movemouse(Client *c) { | |
case ButtonRelease: | |
XUngrabPointer(dpy, CurrentTime); | |
return; | |
- case DestroyNotify: | |
- case UnmapNotify: | |
- XUngrabPointer(dpy, CurrentTime); | |
- handler[ev.type](&ev); | |
- return; | |
} | |
} | |
} | |
t@@ -96,14 +68,8 @@ resizemouse(Client *c) { | |
c->ismax = False; | |
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w, c->h); | |
for(;;) { | |
- XMaskEvent(dpy, MOUSEMASK | ExposureMask | StructureNotifyMask… | |
+ XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev); | |
switch(ev.type) { | |
- default: | |
- break; | |
- case ConfigureRequest: | |
- synconfig(c, c->x, c->y, c->w, c->h, ev.xconfigure.bor… | |
- XSync(dpy, False); | |
- break; | |
case Expose: | |
handler[Expose](&ev); | |
break; | |
t@@ -124,11 +90,6 @@ resizemouse(Client *c) { | |
case ButtonRelease: | |
XUngrabPointer(dpy, CurrentTime); | |
return; | |
- case DestroyNotify: | |
- case UnmapNotify: | |
- XUngrabPointer(dpy, CurrentTime); | |
- handler[ev.type](&ev); | |
- return; | |
} | |
} | |
} | |
t@@ -187,6 +148,7 @@ configurerequest(XEvent *e) { | |
unsigned long newmask; | |
Client *c; | |
XConfigureRequestEvent *ev = &e->xconfigurerequest; | |
+ XEvent synev; | |
XWindowChanges wc; | |
if((c = getclient(ev->window))) { | |
t@@ -210,8 +172,19 @@ configurerequest(XEvent *e) { | |
newmask = ev->value_mask & (~(CWSibling | CWStackMode | CWBord… | |
if(newmask) | |
XConfigureWindow(dpy, c->win, newmask, &wc); | |
- else | |
- synconfig(c, c->x, c->y, c->w, c->h, c->border); | |
+ else { | |
+ synev.type = ConfigureNotify; | |
+ synev.xconfigure.display = dpy; | |
+ synev.xconfigure.event = c->win; | |
+ synev.xconfigure.window = c->win; | |
+ synev.xconfigure.x = c->x; | |
+ synev.xconfigure.y = c->y; | |
+ synev.xconfigure.width = c->w; | |
+ synev.xconfigure.height = c->h; | |
+ synev.xconfigure.border_width = c->border; | |
+ synev.xconfigure.above = None; | |
+ XSendEvent(dpy, c->win, True, NoEventMask, &synev); | |
+ } | |
XSync(dpy, False); | |
if(c->isfloat) | |
resize(c, False, TopLeft); |