]> git.sur5r.net Git - i3/i3/commitdiff
Update parent urgency hint if a child is removed.
authoroblique <psyberbits@gmail.com>
Wed, 12 Jun 2013 01:40:37 +0000 (04:40 +0300)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 23 Jun 2013 20:27:30 +0000 (22:27 +0200)
src/con.c
testcases/t/113-urgent.t

index fe26d6945ec2553f10b5217acb982836198d136f..7ef19477d1e59f822e18c2f71a9caf6025f6a410 100644 (file)
--- a/src/con.c
+++ b/src/con.c
@@ -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
      * don’t close it automatically. */
index 02f98af5829dd64d568dd2ae9ed728ce6adad3c2..2eb853de1cd958c4880ac934aee76ba7698b7a9a 100644 (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);
 }