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>
This commit is contained in:
Derek Foreman 2017-10-06 14:37:45 -05:00 committed by Daniel Stone
parent 927d9e23fa
commit e1af3d8d9d

View file

@ -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);