discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1b6ccd5aa8b1f38d1e3a642d59bc19fbc400c22a
commit 1b6ccd5aa8b1f38d1e3a642d59bc19fbc400c22a Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Fri Jul 7 16:26:32 2017 -0400 add handler to catch (new) fake elm win wl2 window client now the compositor canvas has a wl2 window --- src/bin/e_comp_wl.c | 5 +++++ src/bin/e_comp_wl.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index d25a333d1..beea2c98b 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -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 */ diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index f52830617..e4c5e8901 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -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 --