add workaround for xwayland client bug

sighhhhhhhhhhhhhhhhh
This commit is contained in:
Mike Blumenkrantz 2016-03-12 15:43:39 -05:00
parent 47143ab35a
commit 3829f2c10c
1 changed files with 15 additions and 1 deletions

View File

@ -2175,7 +2175,21 @@ _e_comp_x_message(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Cl
if (res)
wc = wl_resource_get_user_data(res);
if (wc)
e_comp_x_xwayland_client_setup(ec, wc);
{
if (wc->internal)
{
e_object_del(E_OBJECT(wc));
e_object_del(E_OBJECT(ec));
/* this is an xwayland bug. somehow the wrong surface is being passed
* and it's an internal surface--internal surfaces are NEVER
* xwayland clients.
*
* ever.
*/
return ECORE_CALLBACK_RENEW;
}
e_comp_x_xwayland_client_setup(ec, wc);
}
else
{
ec->comp_data->surface_id = ev->data.l[0];