Bugfix: don’t overwrite the window’s geometry after restarting
fixes #1263
This commit is contained in:
parent
e69fcbb17b
commit
893dbae4b1
|
@ -429,7 +429,8 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
|
||||||
* window to be useful (smaller windows are usually overlays/toolbars/…
|
* window to be useful (smaller windows are usually overlays/toolbars/…
|
||||||
* which are not managed by the wm anyways). We store the original geometry
|
* which are not managed by the wm anyways). We store the original geometry
|
||||||
* here because it’s used for dock clients. */
|
* here because it’s used for dock clients. */
|
||||||
nc->geometry = (Rect){ geom->x, geom->y, geom->width, geom->height };
|
if (nc->geometry.width == 0)
|
||||||
|
nc->geometry = (Rect){ geom->x, geom->y, geom->width, geom->height };
|
||||||
|
|
||||||
if (want_floating) {
|
if (want_floating) {
|
||||||
DLOG("geometry = %d x %d\n", nc->geometry.width, nc->geometry.height);
|
DLOG("geometry = %d x %d\n", nc->geometry.width, nc->geometry.height);
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
|
# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
|
||||||
# (unless you are already familiar with Perl)
|
# (unless you are already familiar with Perl)
|
||||||
#
|
#
|
||||||
# Ensures floating windows don’t drop out of fullscreen mode when restarting.
|
# Ensures floating windows don’t drop out of fullscreen mode when restarting
|
||||||
|
# and that they keep their geometry.
|
||||||
# Ticket: #1263
|
# Ticket: #1263
|
||||||
# Bug still in: 4.7.2-200-g570b572
|
# Bug still in: 4.7.2-200-g570b572
|
||||||
use i3test i3_autostart => 0;
|
use i3test i3_autostart => 0;
|
||||||
|
@ -34,12 +35,16 @@ my $window = open_window(wm_class => '__i3-test-window');
|
||||||
cmd 'fullscreen';
|
cmd 'fullscreen';
|
||||||
|
|
||||||
my ($nodes, $focus) = get_ws($tmp);
|
my ($nodes, $focus) = get_ws($tmp);
|
||||||
is($nodes->{floating_nodes}->[0]->{nodes}->[0]->{fullscreen_mode}, 1, 'floating window in fullscreen mode');
|
my $floating_win = $nodes->{floating_nodes}->[0]->{nodes}->[0];
|
||||||
|
is($floating_win->{fullscreen_mode}, 1, 'floating window in fullscreen mode');
|
||||||
|
my $old_geometry = $floating_win->{geometry};
|
||||||
|
|
||||||
cmd 'restart';
|
cmd 'restart';
|
||||||
|
|
||||||
($nodes, $focus) = get_ws($tmp);
|
($nodes, $focus) = get_ws($tmp);
|
||||||
is($nodes->{floating_nodes}->[0]->{nodes}->[0]->{fullscreen_mode}, 1, 'floating window still in fullscreen mode');
|
$floating_win = $nodes->{floating_nodes}->[0]->{nodes}->[0];
|
||||||
|
is($floating_win->{fullscreen_mode}, 1, 'floating window still in fullscreen mode');
|
||||||
|
is_deeply($floating_win->{geometry}, $old_geometry, 'floating window geometry still the same');
|
||||||
|
|
||||||
exit_gracefully($pid);
|
exit_gracefully($pid);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue