applied Sanders focus_* patches, removed the unnecessary clean-prefix from the new function names 2272df9d
Anselm R.Garbe · 2006-08-21 09:03 2 file(s) · +32 −28
client.c +30 −28
11 11
/* static functions */
12 12
13 13
static void
14 +
grabbutton(Client *c, unsigned int button, unsigned int modifier)
15 +
{
16 +
	XGrabButton(dpy, button, modifier, c->win, False, BUTTONMASK,
17 +
			GrabModeAsync, GrabModeSync, None, None);
18 +
	XGrabButton(dpy, button, modifier | LockMask, c->win, False, BUTTONMASK,
19 +
			GrabModeAsync, GrabModeSync, None, None);
20 +
	XGrabButton(dpy, button, modifier | numlockmask, c->win, False, BUTTONMASK,
21 +
			GrabModeAsync, GrabModeSync, None, None);
22 +
	XGrabButton(dpy, button, modifier | numlockmask | LockMask, c->win, False, BUTTONMASK,
23 +
			GrabModeAsync, GrabModeSync, None, None);
24 +
}
25 +
26 +
static void
14 27
resizetitle(Client *c)
15 28
{
16 29
	int i;
31 44
32 45
}
33 46
47 +
static void
48 +
ungrabbutton(Client *c, unsigned int button, unsigned int modifier)
49 +
{
50 +
	XUngrabButton(dpy, button, modifier, c->win);
51 +
	XUngrabButton(dpy, button, modifier | LockMask, c->win);
52 +
	XUngrabButton(dpy, button, modifier | numlockmask, c->win);
53 +
	XUngrabButton(dpy, button, modifier | numlockmask | LockMask, c->win);
54 +
}
55 +
34 56
static int
35 57
xerrordummy(Display *dsply, XErrorEvent *ee)
36 58
{
53 75
54 76
	if (!issel)
55 77
		return;
56 -
	if(sel && sel->ismax)
78 +
	if(sel && sel->ismax && sel != c)
57 79
		togglemax(NULL);
58 80
	sel = c;
59 -
	if(old && old != c)
81 +
	if(old && old != c) {
82 +
		grabbutton(old, AnyButton, 0);
60 83
		drawtitle(old);
84 +
	}
85 +
	ungrabbutton(c, AnyButton, 0);
61 86
	drawtitle(c);
62 87
	XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
63 88
}
230 255
	c->next = clients;
231 256
	clients = c;
232 257
233 -
	XGrabButton(dpy, Button1, MODKEY, c->win, False, BUTTONMASK,
234 -
			GrabModeAsync, GrabModeSync, None, None);
235 -
	XGrabButton(dpy, Button1, MODKEY | LockMask, c->win, False, BUTTONMASK,
236 -
			GrabModeAsync, GrabModeSync, None, None);
237 -
	XGrabButton(dpy, Button1, MODKEY | numlockmask, c->win, False, BUTTONMASK,
238 -
			GrabModeAsync, GrabModeSync, None, None);
239 -
	XGrabButton(dpy, Button1, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK,
240 -
			GrabModeAsync, GrabModeSync, None, None);
241 -
242 -
	XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK,
243 -
			GrabModeAsync, GrabModeSync, None, None);
244 -
	XGrabButton(dpy, Button2, MODKEY | LockMask, c->win, False, BUTTONMASK,
245 -
			GrabModeAsync, GrabModeSync, None, None);
246 -
	XGrabButton(dpy, Button2, MODKEY | numlockmask, c->win, False, BUTTONMASK,
247 -
			GrabModeAsync, GrabModeSync, None, None);
248 -
	XGrabButton(dpy, Button2, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK,
249 -
			GrabModeAsync, GrabModeSync, None, None);
250 -
251 -
	XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK,
252 -
			GrabModeAsync, GrabModeSync, None, None);
253 -
	XGrabButton(dpy, Button3, MODKEY | LockMask, c->win, False, BUTTONMASK,
254 -
			GrabModeAsync, GrabModeSync, None, None);
255 -
	XGrabButton(dpy, Button3, MODKEY | numlockmask, c->win, False, BUTTONMASK,
256 -
			GrabModeAsync, GrabModeSync, None, None);
257 -
	XGrabButton(dpy, Button3, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK,
258 -
			GrabModeAsync, GrabModeSync, None, None);
258 +
	grabbutton(c, Button1, MODKEY);
259 +
	grabbutton(c, Button2, MODKEY);
260 +
	grabbutton(c, Button3, MODKEY);
259 261
260 262
	settags(c);
261 263
	if(!c->isfloat)
event.c +2 −0
119 119
	}
120 120
	else if((c = getclient(ev->window))) {
121 121
		focus(c);
122 +
		if(CLEANMASK(ev->state) == 0)
123 +
			return;
122 124
		switch(ev->button) {
123 125
		default:
124 126
			break;