From: Philipp Kerling Date: Fri, 28 Jul 2017 12:11:58 +0000 (+0200) Subject: desktop-shell: Set surface resizing state during interactive resize X-Git-Tag: upstream/5.0.0~480 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c5f124169514e709699aedc97108837424af5682;p=platform%2Fupstream%2Fweston.git desktop-shell: Set surface resizing state during interactive resize xdg_shell requires this information to be shared with the client in order to conform with the specification. The code to forward this to the client by way of a configure() event is already in place and works fine, it was just never being used until now. Signed-off-by: Philipp Kerling Reviewed-by: Quentin Glidic --- diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 4608cf2f..415da192 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -1635,9 +1635,12 @@ resize_grab_button(struct weston_pointer_grab *grab, struct weston_resize_grab *resize = (struct weston_resize_grab *) grab; struct weston_pointer *pointer = grab->pointer; enum wl_pointer_button_state state = state_w; + struct weston_desktop_surface *desktop_surface = + resize->base.shsurf->desktop_surface; if (pointer->button_count == 0 && state == WL_POINTER_BUTTON_STATE_RELEASED) { + weston_desktop_surface_set_resizing(desktop_surface, false); shell_grab_end(&resize->base); free(grab); } @@ -1647,7 +1650,10 @@ static void resize_grab_cancel(struct weston_pointer_grab *grab) { struct weston_resize_grab *resize = (struct weston_resize_grab *) grab; + struct weston_desktop_surface *desktop_surface = + resize->base.shsurf->desktop_surface; + weston_desktop_surface_set_resizing(desktop_surface, false); shell_grab_end(&resize->base); free(grab); } @@ -1731,6 +1737,7 @@ surface_resize(struct shell_surface *shsurf, resize->height = geometry.height; shsurf->resize_edges = edges; + weston_desktop_surface_set_resizing(shsurf->desktop_surface, true); shell_grab_start(&resize->base, &resize_grab_interface, shsurf, pointer, edges);