Hello,
below is a patch that shortens grabbuttons() a bit.
Cheers,
Johannes
PS: I really appreciate the attitude to reconsider everything from
time to time - even though I'm quite satisfied with current dwm.
diff --git a/dwm.c b/dwm.c
--- a/dwm.c
+++ b/dwm.c
@@ -805,36 +805,18 @@
void
grabbuttons(Client *c, Bool focused) {
+ unsigned int Buttons[] = {Button1, Button2, Button3};
+ unsigned int Modifiers[] = {MODKEY, MODKEY|LockMask,
+ MODKEY|numlockmask, MODKEY|numlockmask|LockMask};
+ int i, j;
+
XUngrabButton(dpy, AnyButton, AnyModifier, c-win);
- if(focused) {
- 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,
BUTTONMASK,
- GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button1, MODKEY|numlockmask|LockMask, c-win,
False, BUTTONMASK,
- 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,
BUTTONMASK,
- GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button2, MODKEY|numlockmask|LockMask, c-win,
False, BUTTONMASK,
- 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,
BUTTONMASK,
- GrabModeAsync, GrabModeSync, None, None);
- XGrabButton(dpy, Button3, MODKEY|numlockmask|LockMask, c-win,
False, BUTTONMASK,
- GrabModeAsync, GrabModeSync, None, None);
- }
+ if(focused)
+ for (i = 0; i LENGTH(Buttons); i++)
+ for (j = 0; j LENGTH(Modifiers); j++)
+ XGrabButton(dpy, Buttons[i], Modifiers[j],
c-win, False,
+ BUTTONMASK, GrabModeAsync,
GrabModeSync, None, None);
else
XGrabButton(dpy, AnyButton, AnyModifier, c-win, False,
BUTTONMASK,
GrabModeAsync, GrabModeSync, None, None);