Update parent urgency hint if a child is removed.

This commit is contained in:
oblique 2013-06-12 04:40:37 +03:00 committed by Michael Stapelberg
parent 3cf46ef4cc
commit 78fad71894
2 changed files with 28 additions and 0 deletions

View File

@ -1369,6 +1369,8 @@ static void con_on_remove_child(Con *con) {
}
con_force_split_parents_redraw(con);
con->urgent = con_has_urgent_child(con);
con_update_parents_urgency(con);
/* TODO: check if this container would swallow any other client and
* dont close it automatically. */

View File

@ -278,6 +278,32 @@ for ($type = 1; $type <= 2; $type++) {
is($w->{urgent}, 0, 'Urgent flag no longer set after killing the window ' .
'from another workspace');
##############################################################################
# Check if urgent flag can be unset if we move the window out of the container
##############################################################################
my $tmp = fresh_workspace;
cmd 'layout tabbed';
my $w1 = open_window;
my $w2 = open_window;
sync_with_i3;
cmd '[id="' . $w2->id . '"] focus';
sync_with_i3;
cmd 'split v';
cmd 'layout stacked';
my $w3 = open_window;
sync_with_i3;
cmd '[id="' . $w2->id . '"] focus';
sync_with_i3;
set_urgency($w3, 1, $type);
sync_with_i3;
cmd 'focus parent';
sync_with_i3;
cmd 'move right';
cmd '[id="' . $w3->id . '"] focus';
sync_with_i3;
my $ws = get_ws($tmp);
ok(!$ws->{urgent}, 'urgent flag not set on workspace');
exit_gracefully($pid);
}