Bugfix: Fix floating resize for floating split containers (+test)
Fixes: #588
This commit is contained in:
parent
386477b789
commit
ec28f3b982
@ -981,18 +981,19 @@ resize:
|
||||
ppt *= -1;
|
||||
}
|
||||
|
||||
if (con_is_floating(focused)) {
|
||||
Con *floating_con;
|
||||
if ((floating_con = con_inside_floating(focused))) {
|
||||
printf("floating resize\n");
|
||||
if (direction == TOK_UP) {
|
||||
focused->parent->rect.y -= px;
|
||||
focused->parent->rect.height += px;
|
||||
floating_con->rect.y -= px;
|
||||
floating_con->rect.height += px;
|
||||
} else if (direction == TOK_DOWN) {
|
||||
focused->parent->rect.height += px;
|
||||
floating_con->rect.height += px;
|
||||
} else if (direction == TOK_LEFT) {
|
||||
focused->parent->rect.x -= px;
|
||||
focused->parent->rect.width += px;
|
||||
floating_con->rect.x -= px;
|
||||
floating_con->rect.width += px;
|
||||
} else {
|
||||
focused->parent->rect.width += px;
|
||||
floating_con->rect.width += px;
|
||||
}
|
||||
} else {
|
||||
LOG("tiling resize\n");
|
||||
|
23
testcases/t/184-regress-float-split-resize.t
Normal file
23
testcases/t/184-regress-float-split-resize.t
Normal file
@ -0,0 +1,23 @@
|
||||
#!perl
|
||||
# vim:ts=4:sw=4:expandtab
|
||||
#
|
||||
# Regression: resizing a floating split container leads to a crash.
|
||||
# (Ticket #588, present until 4412ccbe5a4fad8a4cd594e6f10f937515a4d37c)
|
||||
#
|
||||
use i3test;
|
||||
|
||||
my $tmp = fresh_workspace;
|
||||
|
||||
my $first = open_window;
|
||||
cmd 'split v';
|
||||
my $second = open_window;
|
||||
|
||||
cmd 'focus parent';
|
||||
cmd 'floating toggle';
|
||||
cmd 'layout stacking';
|
||||
|
||||
cmd 'resize grow up 10 px or 10 ppt';
|
||||
|
||||
does_i3_live;
|
||||
|
||||
done_testing;
|
Loading…
Reference in New Issue
Block a user