Bugfix: Transfer 'percent' factor when splitting, add testcase for resizing
This commit is contained in:
parent
a61480db99
commit
b0068de3d7
|
@ -267,7 +267,11 @@ void tree_split(Con *con, orientation_t orientation) {
|
||||||
new->parent = parent;
|
new->parent = parent;
|
||||||
new->orientation = orientation;
|
new->orientation = orientation;
|
||||||
|
|
||||||
/* 3: add it as a child to the new Con */
|
/* 3: swap 'percent' (resize factor) */
|
||||||
|
new->percent = con->percent;
|
||||||
|
con->percent = 0.0;
|
||||||
|
|
||||||
|
/* 4: add it as a child to the new Con */
|
||||||
con_attach(con, new, false);
|
con_attach(con, new, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!perl
|
||||||
|
# vim:ts=4:sw=4:expandtab
|
||||||
|
# Tests resizing tiling containers
|
||||||
|
use i3test tests => 6;
|
||||||
|
use X11::XCB qw(:all);
|
||||||
|
use Time::HiRes qw(sleep);
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
use_ok('X11::XCB::Window');
|
||||||
|
}
|
||||||
|
|
||||||
|
my $x = X11::XCB::Connection->new;
|
||||||
|
|
||||||
|
my $tmp = get_unused_workspace();
|
||||||
|
cmd "workspace $tmp";
|
||||||
|
|
||||||
|
cmd 'split v';
|
||||||
|
|
||||||
|
my $top = open_standard_window($x);
|
||||||
|
sleep 0.25;
|
||||||
|
my $bottom = open_standard_window($x);
|
||||||
|
sleep 0.25;
|
||||||
|
|
||||||
|
diag("top = " . $top->id . ", bottom = " . $bottom->id);
|
||||||
|
|
||||||
|
is($x->input_focus, $bottom->id, 'Bottom window focused');
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# resize
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
cmd 'resize grow up 10 px or 25 ppt';
|
||||||
|
|
||||||
|
my ($nodes, $focus) = get_ws_content($tmp);
|
||||||
|
|
||||||
|
is($nodes->[0]->{percent}, 0.25, 'top window got only 25%');
|
||||||
|
is($nodes->[1]->{percent}, 0.75, 'bottom window got 75%');
|
||||||
|
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# split and check if the 'percent' factor is still correct
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
cmd 'split h';
|
||||||
|
|
||||||
|
($nodes, $focus) = get_ws_content($tmp);
|
||||||
|
|
||||||
|
is($nodes->[0]->{percent}, 0.25, 'top window got only 25%');
|
||||||
|
is($nodes->[1]->{percent}, 0.75, 'bottom window got 75%');
|
Loading…
Reference in New Issue