---
config.def.h | 2 +-
dwm.c | 7 ++++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/config.def.h b/config.def.h
index 81c3fc0..126e561 100644
--- a/config.def.h
+++ b/config.def.h
_AT_@ -99,7 +99,7 @@ static const Key keys[] = {
};
/* button definitions */
-/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
+/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, ClkRootWin, or ClkAnywhere */
static const Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
diff --git a/dwm.c b/dwm.c
index 53b393e..c260d69 100644
--- a/dwm.c
+++ b/dwm.c
_AT_@ -64,7 +64,7 @@ enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
- ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
+ ClkClientWin, ClkRootWin, ClkAnywhere, ClkLast }; /* clicks */
typedef union {
int i;
_AT_@ -451,7 +451,8 @@ buttonpress(XEvent *e)
click = ClkClientWin;
}
for (i = 0; i < LENGTH(buttons); i++)
- if (click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button
+ if ((click == buttons[i].click || buttons[i].click == ClkAnywhere)
+ && buttons[i].func && buttons[i].button == ev->button
&& CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg);
}
_AT_@ -940,7 +941,7 @@ grabbuttons(Client *c, int focused)
XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
BUTTONMASK, GrabModeSync, GrabModeSync, None, None);
for (i = 0; i < LENGTH(buttons); i++)
- if (buttons[i].click == ClkClientWin)
+ if (buttons[i].click == ClkClientWin || buttons[i].click == ClkAnywhere)
for (j = 0; j < LENGTH(modifiers); j++)
XGrabButton(dpy, buttons[i].button,
buttons[i].mask | modifiers[j],
--
2.52.0
Received on Thu Jan 22 2026 - 17:54:28 CET
This archive was generated by hypermail 2.3.0 : Thu Jan 22 2026 - 18:12:35 CET