Replace the old fullscreen container when requesting fullscreen
Fixes: #510
This commit is contained in:
parent
2d110c90e6
commit
849e06f21e
|
@ -520,10 +520,12 @@ void con_toggle_fullscreen(Con *con, int fullscreen_mode) {
|
||||||
fullscreen = con_get_fullscreen_con(workspace, CF_OUTPUT);
|
fullscreen = con_get_fullscreen_con(workspace, CF_OUTPUT);
|
||||||
}
|
}
|
||||||
if (fullscreen != NULL) {
|
if (fullscreen != NULL) {
|
||||||
LOG("Not entering fullscreen mode, container (%p/%s) "
|
/* Disable fullscreen for the currently fullscreened
|
||||||
"already is in fullscreen mode\n",
|
* container and enable it for the one the user wants
|
||||||
|
* to have in fullscreen mode. */
|
||||||
|
LOG("Disabling fullscreen for (%p/%s) upon user request\n",
|
||||||
fullscreen, fullscreen->name);
|
fullscreen, fullscreen->name);
|
||||||
goto update_netwm_state;
|
fullscreen->fullscreen_mode = CF_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 2: enable fullscreen */
|
/* 2: enable fullscreen */
|
||||||
|
@ -533,7 +535,6 @@ void con_toggle_fullscreen(Con *con, int fullscreen_mode) {
|
||||||
con->fullscreen_mode = CF_NONE;
|
con->fullscreen_mode = CF_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
update_netwm_state:
|
|
||||||
DLOG("mode now: %d\n", con->fullscreen_mode);
|
DLOG("mode now: %d\n", con->fullscreen_mode);
|
||||||
|
|
||||||
/* update _NET_WM_STATE if this container has a window */
|
/* update _NET_WM_STATE if this container has a window */
|
||||||
|
|
|
@ -104,9 +104,10 @@ ok(($wrect->{y} - $orect->{y}) < $threshold, 'y coordinate fullscreen');
|
||||||
ok(abs($wrect->{width} - $orect->{width}) < $threshold, 'width coordinate fullscreen');
|
ok(abs($wrect->{width} - $orect->{width}) < $threshold, 'width coordinate fullscreen');
|
||||||
ok(abs($wrect->{height} - $orect->{height}) < $threshold, 'height coordinate fullscreen');
|
ok(abs($wrect->{height} - $orect->{height}) < $threshold, 'height coordinate fullscreen');
|
||||||
|
|
||||||
###############################################################################
|
################################################################################
|
||||||
# test if setting two windows in fullscreen mode at the same time does not work
|
# Verify that when one window wants to go into fullscreen mode, the old
|
||||||
###############################################################################
|
# fullscreen window will be replaced.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
$original_rect = X11::XCB::Rect->new(x => 0, y => 0, width => 30, height => 30);
|
$original_rect = X11::XCB::Rect->new(x => 0, y => 0, width => 30, height => 30);
|
||||||
my $swindow = open_window(
|
my $swindow = open_window(
|
||||||
|
@ -130,7 +131,7 @@ is(fullscreen_windows(), 1, 'amount of fullscreen windows');
|
||||||
|
|
||||||
$window->fullscreen(0);
|
$window->fullscreen(0);
|
||||||
sync_with_i3;
|
sync_with_i3;
|
||||||
is(fullscreen_windows(), 0, 'amount of fullscreen windows');
|
is(fullscreen_windows(), 1, 'amount of fullscreen windows');
|
||||||
|
|
||||||
ok($swindow->mapped, 'window mapped after other fullscreen ended');
|
ok($swindow->mapped, 'window mapped after other fullscreen ended');
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue