discomfitor pushed a commit to branch master.

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

commit c006bbf247b67623915abbf76f3383c912b49325
Author: Mike Blumenkrantz <[email protected]>
Date:   Sat Aug 16 09:47:28 2014 -0400

    systray xembed handles nocomp interactions more reliably
---
 src/modules/systray/e_mod_xembed.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/src/modules/systray/e_mod_xembed.c 
b/src/modules/systray/e_mod_xembed.c
index 2f281cb..f235801 100644
--- a/src/modules/systray/e_mod_xembed.c
+++ b/src/modules/systray/e_mod_xembed.c
@@ -850,6 +850,30 @@ _systray_xembed_client_add(Instance_Xembed *xembed, int t 
EINA_UNUSED, E_Event_C
         else
           evas_object_show(xembed->ec->frame);
         _systray_xembed_restack(xembed);
+        evas_object_data_set(ev->ec->frame, "comp_skip", (void*)1);
+     }
+   return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool
+_systray_xembed_comp_enable(Instance_Xembed *xembed, int t EINA_UNUSED, void 
*ev EINA_UNUSED)
+{
+   if (xembed->ec)
+     {
+        ecore_x_window_show(xembed->win.base);
+        evas_object_show(xembed->ec->frame);
+        e_comp_object_redirected_set(xembed->ec->frame, 1);
+     }
+   return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool
+_systray_xembed_comp_disable(Instance_Xembed *xembed, int t EINA_UNUSED, void 
*ev EINA_UNUSED)
+{
+   if (xembed->ec)
+     {
+        ecore_x_window_hide(xembed->win.base);
+        evas_object_hide(xembed->ec->frame);
      }
    return ECORE_CALLBACK_RENEW;
 }
@@ -896,6 +920,8 @@ systray_xembed_new(Instance *inst)
    E_LIST_HANDLER_APPEND(xembed->handlers, ECORE_X_EVENT_WINDOW_REPARENT, 
_systray_xembed_cb_reparent_notify, xembed);
    E_LIST_HANDLER_APPEND(xembed->handlers, ECORE_X_EVENT_SELECTION_CLEAR, 
_systray_xembed_cb_selection_clear, xembed);
    E_LIST_HANDLER_APPEND(xembed->handlers, ECORE_X_EVENT_WINDOW_CONFIGURE, 
_systray_xembed_cb_window_configure, xembed);
+   E_LIST_HANDLER_APPEND(xembed->handlers, E_EVENT_COMPOSITOR_ENABLE, 
_systray_xembed_comp_enable, xembed);
+   E_LIST_HANDLER_APPEND(xembed->handlers, E_EVENT_COMPOSITOR_DISABLE, 
_systray_xembed_comp_disable, xembed);
 
    return xembed;
 }

-- 


Reply via email to