goto add_to_focus_head;
}
- if (!ignore_focus) {
- /* Get the first tiling container in focus stack */
- TAILQ_FOREACH(loop, &(parent->focus_head), focused) {
- if (loop->type == CT_FLOATING_CON)
- continue;
- current = loop;
- break;
+ if (con->type == CT_FLOATING_CON) {
+ DLOG("Inserting into floating containers\n");
+ TAILQ_INSERT_TAIL(&(parent->floating_head), con, floating_windows);
+ } else {
+ if (!ignore_focus) {
+ /* Get the first tiling container in focus stack */
+ TAILQ_FOREACH(loop, &(parent->focus_head), focused) {
+ if (loop->type == CT_FLOATING_CON)
+ continue;
+ current = loop;
+ break;
+ }
}
- }
- /* Insert the container after the tiling container, if found */
- if (current) {
- DLOG("Inserting con = %p after last focused tiling con %p\n",
- con, current);
- TAILQ_INSERT_AFTER(nodes_head, current, con, nodes);
- } else TAILQ_INSERT_TAIL(nodes_head, con, nodes);
+ /* Insert the container after the tiling container, if found */
+ if (current) {
+ DLOG("Inserting con = %p after last focused tiling con %p\n",
+ con, current);
+ TAILQ_INSERT_AFTER(nodes_head, current, con, nodes);
+ } else TAILQ_INSERT_TAIL(nodes_head, con, nodes);
+ }
add_to_focus_head:
/* We insert to the TAIL because con_focus() will correct this.
#
# Checks if the 'move workspace' command works correctly
#
-use i3test tests => 7;
+use i3test tests => 11;
use Time::HiRes qw(sleep);
my $i3 = i3("/tmp/nestedcons");
($nodes, $focus) = get_ws_content($tmp);
is($nodes->[0]->{focused}, 1, 'first container focused on first ws');
+###################################################################
+# check if floating cons are moved to new workspaces properly
+# (that is, if they are floating on the target ws, too)
+###################################################################
+
+$tmp = get_unused_workspace();
+$tmp2 = get_unused_workspace();
+cmd "workspace $tmp";
+
+cmd "open";
+cmd "mode toggle";
+
+my $ws = get_ws($tmp);
+is(@{$ws->{nodes}}, 0, 'no nodes on workspace');
+is(@{$ws->{floating_nodes}}, 1, 'one floating node on workspace');
+
+cmd "move workspace $tmp2";
+
+$ws = get_ws($tmp2);
+is(@{$ws->{nodes}}, 0, 'no nodes on workspace');
+is(@{$ws->{floating_nodes}}, 1, 'one floating node on workspace');
+
diag( "Testing i3, Perl $], $^X" );