discomfitor pushed a commit to branch enlightenment-0.20.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=3829f2c10cad1a2b1254dcdabd6b3cf0a533afff

commit 3829f2c10cad1a2b1254dcdabd6b3cf0a533afff
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Sat Mar 12 15:43:39 2016 -0500

    add workaround for xwayland client bug
    
    sighhhhhhhhhhhhhhhhh
---
 src/bin/e_comp_x.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 9076866..c2f8bc0 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -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];

-- 


Reply via email to