Render containers as urgent if they have an urgent child

master
Ryan Dwyer 6 years ago
parent be28c18ad5
commit af5f736277

@ -611,11 +611,13 @@ static void render_container_tabbed(struct sway_output *output,
struct border_colors *colors; struct border_colors *colors;
struct wlr_texture *title_texture; struct wlr_texture *title_texture;
struct wlr_texture *marks_texture; struct wlr_texture *marks_texture;
bool urgent = view ?
view_is_urgent(view) : container_has_urgent_child(child);
if (view && view_is_urgent(view)) { if (urgent) {
colors = &config->border_colors.urgent; colors = &config->border_colors.urgent;
title_texture = child->title_urgent; title_texture = child->title_urgent;
marks_texture = view->marks_urgent; marks_texture = view ? view->marks_urgent : NULL;
} else if (cstate->focused || parent_focused) { } else if (cstate->focused || parent_focused) {
colors = &config->border_colors.focused; colors = &config->border_colors.focused;
title_texture = child->title_focused; title_texture = child->title_focused;
@ -678,11 +680,13 @@ static void render_container_stacked(struct sway_output *output,
struct border_colors *colors; struct border_colors *colors;
struct wlr_texture *title_texture; struct wlr_texture *title_texture;
struct wlr_texture *marks_texture; struct wlr_texture *marks_texture;
bool urgent = view ?
view_is_urgent(view) : container_has_urgent_child(child);
if (view && view_is_urgent(view)) { if (urgent) {
colors = &config->border_colors.urgent; colors = &config->border_colors.urgent;
title_texture = child->title_urgent; title_texture = child->title_urgent;
marks_texture = view->marks_urgent; marks_texture = view ? view->marks_urgent : NULL;
} else if (cstate->focused || parent_focused) { } else if (cstate->focused || parent_focused) {
colors = &config->border_colors.focused; colors = &config->border_colors.focused;
title_texture = child->title_focused; title_texture = child->title_focused;

@ -526,5 +526,6 @@ void workspace_detect_urgent(struct sway_container *workspace) {
if (workspace->sway_workspace->urgent != new_urgent) { if (workspace->sway_workspace->urgent != new_urgent) {
workspace->sway_workspace->urgent = new_urgent; workspace->sway_workspace->urgent = new_urgent;
ipc_event_workspace(NULL, workspace, "urgent"); ipc_event_workspace(NULL, workspace, "urgent");
container_damage_whole(workspace);
} }
} }

Loading…
Cancel
Save