]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: Obey workspace_layout when re-inserting floating containers (+test) (Thanks...
authorMichael Stapelberg <michael@stapelberg.de>
Mon, 30 Jan 2012 16:03:51 +0000 (16:03 +0000)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 7 Feb 2012 22:41:00 +0000 (17:41 -0500)
The code wasn’t using con_attach and therefore didn’t obey workspace_layout.

Fixes: #631
src/floating.c
testcases/t/167-workspace_layout.t

index f7dd2ebc57a134b8b8f4b21668d33350501fd39e..0637521fbce020630c22ec98bd8f2efffee3785a 100644 (file)
@@ -238,11 +238,10 @@ void floating_disable(Con *con, bool automatic) {
     /* con_fix_percent will adjust the percent value */
     con->percent = 0.0;
 
-    TAILQ_INSERT_TAIL(&(con->parent->nodes_head), con, nodes);
-    TAILQ_INSERT_TAIL(&(con->parent->focus_head), con, focused);
-
     con->floating = FLOATING_USER_OFF;
 
+    con_attach(con, con->parent, false);
+
     con_fix_percent(con->parent);
     // TODO: don’t influence focus handling when Con was not focused before.
     con_focus(con);
index e4b18adfbd5bfe5f86b08b6c1b05b9b6c5b30551..6a714124b69e943eb7a3541c681129217d1fca59 100644 (file)
@@ -122,6 +122,24 @@ is($content[1]->{layout}, 'stacked', 'layout stacked');
 is(@content, 1, 'one con on target workspace');
 is($content[0]->{layout}, 'stacked', 'layout stacked');
 
+#####################################################################
+# 7: toggle floating mode and check that we have a stacked con when
+# re-inserting a floating container.
+#####################################################################
+
+$tmp = fresh_workspace;
+
+$first = open_window;
+cmd 'floating toggle';
+cmd 'floating toggle';
+
+$second = open_window;
+
+is($x->input_focus, $second->id, 'second window focused');
+@content = @{get_ws_content($tmp)};
+ok(@content == 1, 'one con at workspace level');
+is($content[0]->{layout}, 'stacked', 'layout stacked');
+
 exit_gracefully($pid);
 
 done_testing;