Introduction
Introduction Statistics Contact Development Disclaimer Help
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;
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.