* window to be useful (smaller windows are usually overlays/toolbars/…
* which are not managed by the wm anyways). We store the original geometry
* 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) {
DLOG("geometry = %d x %d\n", nc->geometry.width, nc->geometry.height);
# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
# (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
# Bug still in: 4.7.2-200-g570b572
use i3test i3_autostart => 0;
cmd 'fullscreen';
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';
($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);