}
i3_ws *ws_walk;
+ static char *last_urgent_ws = NULL;
+ bool has_urgent = false, walks_away = true;
+
TAILQ_FOREACH(ws_walk, outputs_walk->workspaces, tailq) {
DLOG("Drawing Button for WS %s at x = %d, len = %d\n", ws_walk->name, i, ws_walk->name_width);
uint32_t fg_color = colors.inactive_ws_fg;
fg_color = colors.focus_ws_fg;
bg_color = colors.focus_ws_bg;
border_color = colors.focus_ws_border;
+ if (last_urgent_ws && strcmp(ws_walk->name, last_urgent_ws) == 0)
+ walks_away = false;
}
}
if (ws_walk->urgent) {
fg_color = colors.urgent_ws_fg;
bg_color = colors.urgent_ws_bg;
border_color = colors.urgent_ws_border;
+ has_urgent = true;
+ if (!ws_walk->focused) {
+ FREE(last_urgent_ws);
+ last_urgent_ws = sstrdup(ws_walk->name);
+ }
/* The urgent-hint should get noticed, so we unhide the bars shortly */
unhide_bars();
}
i += 10 + ws_walk->name_width + 1;
}
+ if (!has_urgent && !mod_pressed && walks_away) {
+ FREE(last_urgent_ws);
+ hide_bars();
+ }
+
i = 0;
}