summaryrefslogtreecommitdiff
path: root/desktop-shell
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-10-06 14:37:45 -0500
committerDaniel Stone <daniels@collabora.com>2017-12-04 21:58:15 +0000
commite1af3d8d9d2243c9a1ec06549c2e283f91ea6487 (patch)
tree2386fe41c037283821dde38ede99ec43a6be71ad /desktop-shell
parent927d9e23fadb8babaf8ee93b215a25c448c5f6f2 (diff)
downloadweston-e1af3d8d9d2243c9a1ec06549c2e283f91ea6487.tar.gz
desktop-shell: Handle the fullscreen to maximized case safely
When a client transitions from maximized to fullscreen to maximized (run weston-terminal, maximize it, hit f11 twice) we're sending size 0,0 for the unfullscreen configure, which still has maximized set. This results in clients correctly picking any size they like, and weston disconnecting them for it. Instead, pass the correct maximized size. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
Diffstat (limited to 'desktop-shell')
-rw-r--r--desktop-shell/shell.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 8c9b59ae..a2a93e2f 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -2618,6 +2618,8 @@ set_fullscreen(struct shell_surface *shsurf, bool fullscreen,
width = shsurf->output->width;
height = shsurf->output->height;
+ } else if (weston_desktop_surface_get_maximized(desktop_surface)) {
+ get_maximized_size(shsurf, &width, &height);
}
weston_desktop_surface_set_fullscreen(desktop_surface, fullscreen);
weston_desktop_surface_set_size(desktop_surface, width, height);