summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-01-13 11:35:26 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-01-13 11:35:20 -0500
commit7716f58b5d10ac3159488e69cd8d37cc0318da71 (patch)
tree5010bc030690f7b905fbdc42a41ab2d4d6856a82
parentaba6687b3068d0e59a3fe7578a8c6a81288081bb (diff)
downloadenlightenment-7716f58b5d10ac3159488e69cd8d37cc0318da71.tar.gz
throw xdg6 errors for unconfigured buffers as spec requires
-rw-r--r--src/modules/wl_desktop_shell/xdg6.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/modules/wl_desktop_shell/xdg6.c b/src/modules/wl_desktop_shell/xdg6.c
index a541cbf075..f9bfd5a9a9 100644
--- a/src/modules/wl_desktop_shell/xdg6.c
+++ b/src/modules/wl_desktop_shell/xdg6.c
@@ -857,6 +857,13 @@ _e_xdg_surface_cb_popup_get(struct wl_client *client, struct wl_resource *resour
return;
}
if (e_object_is_del(E_OBJECT(ec))) return;
+ if (e_pixmap_usable_get(ec->pixmap))
+ {
+ wl_resource_post_error(resource,
+ ZXDG_SURFACE_V6_ERROR_UNCONFIGURED_BUFFER,
+ "buffer attached/committed before configure");
+ return;
+ }
p = wl_resource_get_user_data(positioner_resource);
if (!p)
{
@@ -1177,6 +1184,13 @@ _e_xdg_surface_cb_toplevel_get(struct wl_client *client EINA_UNUSED, struct wl_r
return;
}
if (e_object_is_del(E_OBJECT(ec))) return;
+ if (e_pixmap_usable_get(ec->pixmap))
+ {
+ wl_resource_post_error(resource,
+ ZXDG_SURFACE_V6_ERROR_UNCONFIGURED_BUFFER,
+ "buffer attached/committed before configure");
+ return;
+ }
cdata = ec->comp_data;
if (cdata->shell.surface)
@@ -1268,6 +1282,13 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource *resour
return;
}
if (e_object_is_del(E_OBJECT(ec))) return;
+ if (e_pixmap_usable_get(ec->pixmap))
+ {
+ wl_resource_post_error(surface_resource,
+ ZXDG_SURFACE_V6_ERROR_UNCONFIGURED_BUFFER,
+ "buffer attached/committed before configure");
+ return;
+ }
ec->netwm.ping = 1;
cdata = ec->comp_data;