[wiki] [sites] [dwm] [staticstatus] || iressa

From: <git_AT_suckless.org>
Date: Sun, 10 Oct 2021 21:23:37 +0200

commit 51f0efd4e547d963c84ad55aeb648aae3717d479
Author: iressa <ian_AT_eonndev.com>
Date: Sun Oct 10 15:21:54 2021 -0400

    [dwm] [staticstatus]
    
    Fixing issue where invoking buttonpress on a non-status monitor would still treat the click region as if the status was drawn there.

diff --git a/dwm.suckless.org/patches/staticstatus/dwm-staticstatus-20211010-a786211.diff b/dwm.suckless.org/patches/staticstatus/dwm-staticstatus-20211010-a786211.diff
new file mode 100644
index 00000000..0fc44220
--- /dev/null
+++ b/dwm.suckless.org/patches/staticstatus/dwm-staticstatus-20211010-a786211.diff
_AT_@ -0,0 +1,83 @@
+diff --git a/config.def.h b/config.def.h
+index a2ac963..e485712 100644
+--- a/config.def.h
++++ b/config.def.h
+_AT_@ -18,6 +18,9 @@ static const char *colors[][3] = {
+ [SchemeSel] = { col_gray4, col_cyan, col_cyan },
+ };
+
++/* staticstatus */
++static const int statmonval = 0;
++
+ /* tagging */
+ static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+diff --git a/dwm.c b/dwm.c
+index 5e4d494..e5fa599 100644
+--- a/dwm.c
++++ b/dwm.c
+_AT_@ -266,7 +266,7 @@ static Cur *cursor[CurLast];
+ static Clr **scheme;
+ static Display *dpy;
+ static Drw *drw;
+-static Monitor *mons, *selmon;
++static Monitor *mons, *selmon, *statmon;
+ static Window root, wmcheckwin;
+
+ /* configuration, allows nested code to access above variables */
+_AT_@ -440,7 +440,7 @@ buttonpress(XEvent *e)
+ arg.ui = 1 << i;
+ } else if (ev->x < x + blw)
+ click = ClkLtSymbol;
+- else if (ev->x > selmon->ww - (int)TEXTW(stext))
++ else if (m == statmon && ev->x > selmon->ww - (int)TEXTW(stext))
+ click = ClkStatusText;
+ else
+ click = ClkWinTitle;
+_AT_@ -703,7 +703,7 @@ drawbar(Monitor *m)
+ Client *c;
+
+ /* draw status first so it can be overdrawn by tags later */
+- if (m == selmon) { /* status is only drawn on selected monitor */
++ if (m == statmon) { /* status is only drawn on user-defined status monitor */
+ drw_setscheme(drw, scheme[SchemeNorm]);
+ tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */
+ drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0);
+_AT_@ -1879,7 +1879,7 @@ updategeom(void)
+ else
+ mons = createmon();
+ }
+- for (i = 0, m = mons; i < nn && m; m = m->next, i++)
++ for (i = 0, m = mons; i < nn && m; m = m->next, i++){
+ if (i >= n
+ || unique[i].x_org != m->mx || unique[i].y_org != m->my
+ || unique[i].width != m->mw || unique[i].height != m->mh)
+_AT_@ -1892,6 +1892,10 @@ updategeom(void)
+ m->mh = m->wh = unique[i].height;
+ updatebarpos(m);
+ }
++ if(i == statmonval)
++ statmon = m;
++ }
++
+ } else { /* less monitors available nn < n */
+ for (i = nn; i < n; i++) {
+ for (m = mons; m && m->next; m = m->next);
+_AT_@ -1905,6 +1909,8 @@ updategeom(void)
+ }
+ if (m == selmon)
+ selmon = mons;
++ if (m == statmon)
++ statmon = mons;
+ cleanupmon(m);
+ }
+ }
+_AT_@ -1992,7 +1998,7 @@ updatestatus(void)
+ {
+ if (!gettextprop(root, XA_WM_NAME, stext, sizeof(stext)))
+ strcpy(stext, "dwm-"VERSION);
+- drawbar(selmon);
++ drawbar(statmon);
+ }
+
+ void
Received on Sun Oct 10 2021 - 21:23:37 CEST

This archive was generated by hypermail 2.3.0 : Sun Oct 10 2021 - 21:24:45 CEST