summaryrefslogtreecommitdiff
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
parent927d9e23fadb8babaf8ee93b215a25c448c5f6f2 (diff)
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>
-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);