From: Quentin Glidic <[email protected]>

These requests need a mapped surface, which can only happen after the
initial configure event.

Signed-off-by: Quentin Glidic <[email protected]>
---
Sorry for the noise, last minute rename.

 libweston-desktop/xdg-shell-v6.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/libweston-desktop/xdg-shell-v6.c b/libweston-desktop/xdg-shell-v6.c
index fbf3e69..d4d0112 100644
--- a/libweston-desktop/xdg-shell-v6.c
+++ b/libweston-desktop/xdg-shell-v6.c
@@ -349,6 +349,13 @@ 
weston_desktop_xdg_toplevel_protocol_show_window_menu(struct wl_client *wl_clien
        struct weston_desktop_xdg_toplevel *toplevel =
                weston_desktop_surface_get_implementation_data(dsurface);
 
+       if (!toplevel->base.configured) {
+               wl_resource_post_error(toplevel->resource,
+                                      ZXDG_SURFACE_V6_ERROR_NOT_CONSTRUCTED,
+                                      "Surface has not been configured yet");
+               return;
+       }
+
        weston_desktop_api_show_window_menu(toplevel->base.desktop,
                                            dsurface, seat, x, y);
 }
@@ -366,6 +373,13 @@ weston_desktop_xdg_toplevel_protocol_move(struct wl_client 
*wl_client,
        struct weston_desktop_xdg_toplevel *toplevel =
                weston_desktop_surface_get_implementation_data(dsurface);
 
+       if (!toplevel->base.configured) {
+               wl_resource_post_error(toplevel->resource,
+                                      ZXDG_SURFACE_V6_ERROR_NOT_CONSTRUCTED,
+                                      "Surface has not been configured yet");
+               return;
+       }
+
        weston_desktop_api_move(toplevel->base.desktop, dsurface, seat, serial);
 }
 
@@ -383,6 +397,13 @@ weston_desktop_xdg_toplevel_protocol_resize(struct 
wl_client *wl_client,
        struct weston_desktop_xdg_toplevel *toplevel =
                weston_desktop_surface_get_implementation_data(dsurface);
 
+       if (!toplevel->base.configured) {
+               wl_resource_post_error(toplevel->resource,
+                                      ZXDG_SURFACE_V6_ERROR_NOT_CONSTRUCTED,
+                                      "Surface has not been configured yet");
+               return;
+       }
+
        weston_desktop_api_resize(toplevel->base.desktop,
                                  dsurface, seat, serial, edges);
 }
-- 
2.10.0

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to