X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=scrotwm.c;h=70cb810c31dab05cc9c595123d989f9bdbf0cb67;hb=d1c7dc33a6a2fd9bea33d53deace0d1c0ebfae9f;hp=b4d20e86489cf393415ba46ca403b49dde293862;hpb=77f803db691fa603a8c2c195a69dba7bb7a1cdd6;p=spectrwm.git diff --git a/scrotwm.c b/scrotwm.c index b4d20e8..70cb810 100644 --- a/scrotwm.c +++ b/scrotwm.c @@ -1263,18 +1263,21 @@ bar_window_name(char *s, ssize_t sz, struct ws_win *cur_focus) } } +int urgent[SWM_WS_MAX]; void bar_urgent(char *s, ssize_t sz) { XWMHints *wmh = NULL; struct ws_win *win; - int i, j, got_some = 0; - char a[32], b[8]; + int i, j; + char b[8]; if (urgent_enabled == 0) return; - a[0] = '\0'; + for (i = 0; i < SWM_WS_MAX; i++) + urgent[i] = 0; + for (i = 0; i < ScreenCount(display); i++) for (j = 0; j < SWM_WS_MAX; j++) TAILQ_FOREACH(win, &screens[i].ws[j].winlist, entry) { @@ -1282,19 +1285,20 @@ bar_urgent(char *s, ssize_t sz) if (wmh == NULL) continue; - if (wmh->flags & XUrgencyHint) { - snprintf(b, sizeof b, "%d ", j + 1); - strlcat(a, b, sizeof a); - got_some = 1; - } + if (wmh->flags & XUrgencyHint) + urgent[j] = 1; XFree(wmh); } - if (got_some) { - strlcat(s, a, sz); - strlcat(s, " ", sz); - } else - strlcat(s, " ", sz); + strlcat(s, "* ", sz); + for (i = 0; i < SWM_WS_MAX; i++) { + if (urgent[i]) + snprintf(b, sizeof b, "%d ", i + 1); + else + snprintf(b, sizeof b, "- "); + strlcat(s, b, sz); + } + strlcat(s, "* ", sz); } void