Introduction
Introduction Statistics Contact Development Disclaimer Help
tsander check this - dwm - [fork] customized build of dwm, the dynamic window m…
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit 9eb226ff78a0d8fc733c31d98170d33824231370
parent e34c4eaf61d4e9972132b53b05cfc43c550d4d15
Author: arg@mmvi <unknown>
Date: Fri, 22 Sep 2006 09:43:21 +0200
sander check this
Diffstat:
M event.c | 56 ++++++++++++++++++++---------…
1 file changed, 37 insertions(+), 19 deletions(-)
---
diff --git a/event.c b/event.c
t@@ -21,6 +21,23 @@ 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@@ -34,10 +51,14 @@ movemouse(Client *c) {
return;
XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
for(;;) {
- XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
+ XMaskEvent(dpy, MOUSEMASK | ExposureMask | StructureNotifyMask…
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@@ -50,6 +71,11 @@ movemouse(Client *c) {
case ButtonRelease:
XUngrabPointer(dpy, CurrentTime);
return;
+ case DestroyNotify:
+ case UnmapNotify:
+ XUngrabPointer(dpy, CurrentTime);
+ handler[ev.type](&ev);
+ return;
}
}
}
t@@ -68,10 +94,14 @@ resizemouse(Client *c) {
return;
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w, c->h);
for(;;) {
- XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
+ XMaskEvent(dpy, MOUSEMASK | ExposureMask | StructureNotifyMask…
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@@ -92,6 +122,11 @@ resizemouse(Client *c) {
case ButtonRelease:
XUngrabPointer(dpy, CurrentTime);
return;
+ case DestroyNotify:
+ case UnmapNotify:
+ XUngrabPointer(dpy, CurrentTime);
+ handler[ev.type](&ev);
+ return;
}
}
}
t@@ -146,23 +181,6 @@ buttonpress(XEvent *e) {
}
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
configurerequest(XEvent *e) {
unsigned long newmask;
Client *c;
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.