From 6ae4ecb1deebf9f275e58010b8ead84f82f9f582 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Fri, 7 Feb 2014 10:07:56 -0500 Subject: [PATCH] Bugfix: `tree_split` should not split floating cons Use the more robust test of `con_is_floating` for testing a container for being floating. fixes #1177 --- src/tree.c | 2 +- testcases/t/218-regress-floating-split.t | 35 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 testcases/t/218-regress-floating-split.t diff --git a/src/tree.c b/src/tree.c index 046d0b4c..48ab163d 100644 --- a/src/tree.c +++ b/src/tree.c @@ -387,7 +387,7 @@ void tree_close_con(kill_window_t kill_window) { * */ void tree_split(Con *con, orientation_t orientation) { - if (con->type == CT_FLOATING_CON) { + if (con_is_floating(con)) { DLOG("Floating containers can't be split.\n"); return; } diff --git a/testcases/t/218-regress-floating-split.t b/testcases/t/218-regress-floating-split.t new file mode 100644 index 00000000..d66adc14 --- /dev/null +++ b/testcases/t/218-regress-floating-split.t @@ -0,0 +1,35 @@ +#!perl +# vim:ts=4:sw=4:expandtab +# +# Please read the following documents before working on tests: +# • http://build.i3wm.org/docs/testsuite.html +# (or docs/testsuite) +# +# • http://build.i3wm.org/docs/lib-i3test.html +# (alternatively: perldoc ./testcases/lib/i3test.pm) +# +# • http://build.i3wm.org/docs/ipc.html +# (or docs/ipc) +# +# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf +# (unless you are already familiar with Perl) +# +# Make sure floating containers really can't be split. +# Ticket: #1177 +# Bug still in: 4.7.2-81-g905440d +use i3test; + +my $ws = fresh_workspace; +my $window = open_floating_window; +cmd "layout stacked"; +cmd "splitv"; + +my $floating_con = get_ws($ws)->{floating_nodes}[0]->{nodes}[0]; + +is(@{$floating_con->{nodes}}, 0, 'floating con is still a leaf'); + +cmd 'floating disable'; + +does_i3_live; + +done_testing; -- 2.39.5