]> git.sur5r.net Git - i3/i3/commitdiff
Remove-child callback skips output content cons
authorTony Crisci <tony@dubstepdish.com>
Fri, 22 Nov 2013 15:00:49 +0000 (10:00 -0500)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 22 Nov 2013 16:09:23 +0000 (17:09 +0100)
Every container 'above' (in the hierarchy) the workspace content should
not be closed when the last child was removed.

Add a check for output content containers and do not handle them. These
cons are at the root of the output container with dockarea siblings.
They may be run through this callback when an output is killed with
RandR.

Fixes an issue that caused content cons to become urgent when the output
is killed with RandR.

fixes: #1121

src/con.c

index 5b68481a759317badf8bd65edfc8fda165b02232..d5b8c140bda77b17797229bb7ae85fb6af501bc5 100644 (file)
--- a/src/con.c
+++ b/src/con.c
@@ -1354,8 +1354,9 @@ static void con_on_remove_child(Con *con) {
      * not be closed when the last child was removed */
     if (con->type == CT_OUTPUT ||
         con->type == CT_ROOT ||
-        con->type == CT_DOCKAREA) {
-        DLOG("not handling, type = %d\n", con->type);
+        con->type == CT_DOCKAREA ||
+        (con->parent != NULL && con->parent->type == CT_OUTPUT)) {
+        DLOG("not handling, type = %d, name = %s\n", con->type, con->name);
         return;
     }