tapplied Sanders focus_* patches, removed the unnecessary clean-prefix from the… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 2272df9d3179ec639066614f4d36d18df16ff725 | |
parent 08d85d6d66bc4493414d76e470e473fa689c5990 | |
Author: Anselm R.Garbe <[email protected]> | |
Date: Mon, 21 Aug 2006 09:03:14 +0200 | |
applied Sanders focus_* patches, removed the unnecessary clean-prefix from the … | |
Diffstat: | |
M client.c | 58 ++++++++++++++++-------------… | |
M event.c | 2 ++ | |
2 files changed, 32 insertions(+), 28 deletions(-) | |
--- | |
diff --git a/client.c b/client.c | |
t@@ -11,6 +11,19 @@ | |
/* static functions */ | |
static void | |
+grabbutton(Client *c, unsigned int button, unsigned int modifier) | |
+{ | |
+ XGrabButton(dpy, button, modifier, c->win, False, BUTTONMASK, | |
+ GrabModeAsync, GrabModeSync, None, None); | |
+ XGrabButton(dpy, button, modifier | LockMask, c->win, False, BUTTONMAS… | |
+ GrabModeAsync, GrabModeSync, None, None); | |
+ XGrabButton(dpy, button, modifier | numlockmask, c->win, False, BUTTON… | |
+ GrabModeAsync, GrabModeSync, None, None); | |
+ XGrabButton(dpy, button, modifier | numlockmask | LockMask, c->win, Fa… | |
+ GrabModeAsync, GrabModeSync, None, None); | |
+} | |
+ | |
+static void | |
resizetitle(Client *c) | |
{ | |
int i; | |
t@@ -31,6 +44,15 @@ resizetitle(Client *c) | |
} | |
+static void | |
+ungrabbutton(Client *c, unsigned int button, unsigned int modifier) | |
+{ | |
+ XUngrabButton(dpy, button, modifier, c->win); | |
+ XUngrabButton(dpy, button, modifier | LockMask, c->win); | |
+ XUngrabButton(dpy, button, modifier | numlockmask, c->win); | |
+ XUngrabButton(dpy, button, modifier | numlockmask | LockMask, c->win); | |
+} | |
+ | |
static int | |
xerrordummy(Display *dsply, XErrorEvent *ee) | |
{ | |
t@@ -53,11 +75,14 @@ focus(Client *c) | |
if (!issel) | |
return; | |
- if(sel && sel->ismax) | |
+ if(sel && sel->ismax && sel != c) | |
togglemax(NULL); | |
sel = c; | |
- if(old && old != c) | |
+ if(old && old != c) { | |
+ grabbutton(old, AnyButton, 0); | |
drawtitle(old); | |
+ } | |
+ ungrabbutton(c, AnyButton, 0); | |
drawtitle(c); | |
XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); | |
} | |
t@@ -230,32 +255,9 @@ manage(Window w, XWindowAttributes *wa) | |
c->next = clients; | |
clients = c; | |
- XGrabButton(dpy, Button1, MODKEY, c->win, False, BUTTONMASK, | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button1, MODKEY | LockMask, c->win, False, BUTTONMASK, | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button1, MODKEY | numlockmask, c->win, False, BUTTONM… | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button1, MODKEY | numlockmask | LockMask, c->win, Fal… | |
- GrabModeAsync, GrabModeSync, None, None); | |
- | |
- XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK, | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button2, MODKEY | LockMask, c->win, False, BUTTONMASK, | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button2, MODKEY | numlockmask, c->win, False, BUTTONM… | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button2, MODKEY | numlockmask | LockMask, c->win, Fal… | |
- GrabModeAsync, GrabModeSync, None, None); | |
- | |
- XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK, | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button3, MODKEY | LockMask, c->win, False, BUTTONMASK, | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button3, MODKEY | numlockmask, c->win, False, BUTTONM… | |
- GrabModeAsync, GrabModeSync, None, None); | |
- XGrabButton(dpy, Button3, MODKEY | numlockmask | LockMask, c->win, Fal… | |
- GrabModeAsync, GrabModeSync, None, None); | |
+ grabbutton(c, Button1, MODKEY); | |
+ grabbutton(c, Button2, MODKEY); | |
+ grabbutton(c, Button3, MODKEY); | |
settags(c); | |
if(!c->isfloat) | |
diff --git a/event.c b/event.c | |
t@@ -119,6 +119,8 @@ buttonpress(XEvent *e) | |
} | |
else if((c = getclient(ev->window))) { | |
focus(c); | |
+ if(CLEANMASK(ev->state) == 0) | |
+ return; | |
switch(ev->button) { | |
default: | |
break; |