add handler to catch (new) fake elm win wl2 window client

now the compositor canvas has a wl2 window
This commit is contained in:
Mike Blumenkrantz 2017-07-07 16:26:32 -04:00
parent b008dce0a0
commit 1b6ccd5aa8
2 changed files with 6 additions and 0 deletions

View File

@ -1911,6 +1911,9 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client *client, struct wl_reso
}
if (client != e_comp_wl->xwl_client)
ec->internal = pid == getpid();
if (ec->internal && (!e_comp_wl->wl.client_ec))
e_comp_wl->wl.client_ec = ec;
ec->icccm.delete_request |= ec->internal;
/* set reference to pixmap so we can fetch it later */
@ -2498,6 +2501,8 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec)
/* make sure this is a wayland client */
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;
if (ec == e_comp_wl->wl.client_ec)
e_comp_wl->wl.client_ec = NULL;
e_comp_wl_extension_pointer_unconstrain(ec);
/* remove sub list */

View File

@ -142,6 +142,7 @@ struct _E_Comp_Wl_Data
{
struct wl_display *disp;
Ecore_Wl2_Display *client_disp;
E_Client *client_ec;
struct wl_registry *registry; // only used for nested wl compositors
/* struct wl_event_loop *loop; */
Eina_Inlist *globals; // only used for nested wl compositors