Merge branch 'fix-float-resize'

This commit is contained in:
Michael Stapelberg 2011-12-18 15:18:47 +00:00
commit 59a694edea
2 changed files with 31 additions and 7 deletions

View File

@ -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");

View 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;