diff options
author | Philip Wittamore <philip@wittamore.com> | 2025-06-01 19:04:49 +0200 |
---|---|---|
committer | Philip Wittamore <philip@wittamore.com> | 2025-06-01 19:04:49 +0200 |
commit | bf9c684624cb8446b8b09b1cfc3538dd603738e9 (patch) | |
tree | 7b64605848aa54bf8e6767c90dc30e6b4d216dac /dwm.c | |
parent | 37abb009c11fabe7a85e04588542636d6dc5a96e (diff) | |
download | dwm-bf9c684624cb8446b8b09b1cfc3538dd603738e9.tar.gz dwm-bf9c684624cb8446b8b09b1cfc3538dd603738e9.tar.bz2 dwm-bf9c684624cb8446b8b09b1cfc3538dd603738e9.zip |
update
Diffstat (limited to 'dwm.c')
-rw-r--r-- | dwm.c | 104 |
1 files changed, 5 insertions, 99 deletions
@@ -202,7 +202,6 @@ static void focusstack(const Arg *arg); static Atom getatomprop(Client *c, Atom prop); static int getrootptr(int *x, int *y); static long getstate(Window w); -static pid_t getstatusbarpid(); static int gettextprop(Window w, Atom atom, char *text, unsigned int size); static void grabbuttons(Client *c, int focused); static void grabkeys(void); @@ -240,7 +239,6 @@ static void setmfact(const Arg *arg); static void setup(void); static void seturgent(Client *c, int urg); static void showhide(Client *c); -static void sigstatusbar(const Arg *arg); static void spawn(const Arg *arg); static void tag(const Arg *arg); static void tagmon(const Arg *arg); @@ -286,9 +284,6 @@ static pid_t winpid(Window w); /* variables */ static const char broken[] = "broken"; static char stext[256]; -static int statusw; -static int statussig; -static pid_t statuspid = -1; static int screen; static int sw, sh; /* X display screen geometry width, height */ static int bh; /* bar height */ @@ -537,7 +532,6 @@ buttonpress(XEvent *e) Client *c; Monitor *m; XButtonPressedEvent *ev = &e->xbutton; - char *text, *s, ch; click = ClkRootWin; /* focus monitor if necessary */ @@ -562,27 +556,9 @@ buttonpress(XEvent *e) arg.ui = 1 << i; } else if (ev->x < x + TEXTW(selmon->ltsymbol)) click = ClkLtSymbol; - else if (ev->x > selmon->ww - statusw) { - x = selmon->ww - statusw; + else if (ev->x > selmon->ww - (int)TEXTW(stext)) click = ClkStatusText; - statussig = 0; - for (text = s = stext; *s && x <= ev->x; s++) { - if ((unsigned char)(*s) < ' ') { - ch = *s; - *s = '\0'; - x += TEXTW(text) - lrpad; - *s = ch; - text = s + 1; - if (x >= ev->x) - break; - /* reset on matching signal raw byte */ - if (ch == statussig) - statussig = 0; - else - statussig = ch; - } - } - } else + else click = ClkWinTitle; } else if ((c = wintoclient(ev->window))) { focus(c); @@ -876,24 +852,9 @@ drawbar(Monitor *m) /* draw status first so it can be overdrawn by tags later */ if (m == selmon) { /* status is only drawn on selected monitor */ - char *text, *s, ch; drw_setscheme(drw, scheme[SchemeNorm]); - - x = 0; - for (text = s = stext; *s; s++) { - if ((unsigned char)(*s) < ' ') { - ch = *s; - *s = '\0'; - tw = TEXTW(text) - lrpad; - drw_text(drw, m->ww - statusw + x, 0, tw, bh, 0, text, 0); - x += tw; - *s = ch; - text = s + 1; - } - } - tw = TEXTW(text) - lrpad + 2; - drw_text(drw, m->ww - statusw + x, 0, tw, bh, 0, text, 0); - tw = statusw; + tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */ + drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0); } for (c = m->clients; c; c = c->next) { @@ -1080,30 +1041,6 @@ getatomprop(Client *c, Atom prop) return atom; } -pid_t -getstatusbarpid() -{ - char buf[32], *str = buf, *c; - FILE *fp; - - if (statuspid > 0) { - snprintf(buf, sizeof(buf), "/proc/%u/cmdline", statuspid); - if ((fp = fopen(buf, "r"))) { - fgets(buf, sizeof(buf), fp); - while ((c = strchr(str, '/'))) - str = c + 1; - fclose(fp); - if (!strcmp(str, STATUSBAR)) - return statuspid; - } - } - if (!(fp = popen("pidof -s "STATUSBAR, "r"))) - return -1; - fgets(buf, sizeof(buf), fp); - pclose(fp); - return strtol(buf, NULL, 10); -} - int getrootptr(int *x, int *y) { @@ -2000,20 +1937,6 @@ showhide(Client *c) } void -sigstatusbar(const Arg *arg) -{ - union sigval sv; - - if (!statussig) - return; - sv.sival_int = arg->i; - if ((statuspid = getstatusbarpid()) <= 0) - return; - - sigqueue(statuspid, SIGRTMIN+statussig, sv); -} - -void spawn(const Arg *arg) { struct sigaction sa; @@ -2429,25 +2352,8 @@ updatesizehints(Client *c) void updatestatus(void) { - if (!gettextprop(root, XA_WM_NAME, stext, sizeof(stext))) { + if (!gettextprop(root, XA_WM_NAME, stext, sizeof(stext))) strcpy(stext, "dwm-"VERSION); - statusw = TEXTW(stext) - lrpad + 2; - } else { - char *text, *s, ch; - - statusw = 0; - for (text = s = stext; *s; s++) { - if ((unsigned char)(*s) < ' ') { - ch = *s; - *s = '\0'; - statusw += TEXTW(text) - lrpad; - *s = ch; - text = s + 1; - } - } - statusw += TEXTW(text) - lrpad + 2; - - } drawbar(selmon); } |