Hello, I am resending the patch because it contained some incorrect indentation.
>From 382e4a21c070760f6c5607da704f2384d71ca5c2 Mon Sep 17 00:00:00 2001 From: Ruben Gonzalez <[email protected]> Date: Fri, 13 Mar 2026 15:23:24 +0200 Subject: [PATCH] buttonpress: fix status text click area mismatch --- dwm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dwm.c b/dwm.c index 6fe226f..ab3a84c 100644 --- a/dwm.c +++ b/dwm.c @@ -440,7 +440,7 @@ buttonpress(XEvent *e) arg.ui = 1 << i; } else if (ev->x < x + TEXTW(selmon->ltsymbol)) click = ClkLtSymbol; - else if (ev->x > selmon->ww - (int)TEXTW(stext)) + else if (ev->x > selmon->ww - (int)TEXTW(stext) + lrpad - 2) click = ClkStatusText; else click = ClkWinTitle; -- 2.43.0 On Fri, Mar 13, 2026 at 4:04 PM Ruben Gonzalez <[email protected]> wrote: > > The status bar in drawbar() calculates the text width as TEXTW(stext) > - lrpad + 2. However, the click detection in buttonpress() used > TEXTW(stext) without adjusting for that padding. > > This created an "extra" clickable area of some pixels to the left of > the status text that would incorrectly trigger ClkStatusText actions > instead of ClkWinTitle. > > Steps to reproduce: > 1. Set a status text: xsetroot -name "HELLO" > 2. Move the mouse to the empty space with some pixels close to the > left of the word "HELLO" but in the title area. > 3. Middle-click (or any binding for ClkStatusText). > 4. You can see that the status bar action is triggered (default a > terminal spawns), even though you clicked in the window title area. > > This fix ensures that the clickable area matches the visual text. > > 0001-buttonpress-fix-status-text-click-area-mismatch.patch > > From 382e4a21c070760f6c5607da704f2384d71ca5c2 Mon Sep 17 00:00:00 2001 > From: Ruben Gonzalez <[email protected]> > Date: Fri, 13 Mar 2026 15:23:24 +0200 > Subject: [PATCH] buttonpress: fix status text click area mismatch > > --- > dwm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/dwm.c b/dwm.c > index 6fe226f..ab3a84c 100644 > --- a/dwm.c > +++ b/dwm.c > @@ -440,7 +440,7 @@ buttonpress(XEvent *e) > arg.ui = 1 << i; > } else if (ev->x < x + TEXTW(selmon->ltsymbol)) > click = ClkLtSymbol; > - else if (ev->x > selmon->ww - (int)TEXTW(stext)) > + else if (ev->x > selmon->ww - (int)TEXTW(stext) + lrpad - 2) > click = ClkStatusText; > else > click = ClkWinTitle; > --
