discomfitor pushed a commit to branch master.

commit 181f11a03a121b05ff4aac1b542ceb9ffeec3aba
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Jun 27 14:39:40 2013 +0100

    fix override window shape input cutting
    
    this is currently GUARANTEED to break with override shaped windows, which 
means that if such a window is ever opened, it will NEVER receive input unless 
it is placed over another client window. this is due to a limitation in evas 
where it is impossible to (de)select input regions which forced me to choose 
between either having shaped override windows (such as desktop recorders) block 
all mouse input to the screen OR have normal override windows (gtk menus and 
popups...) not able to ge [...]
---
 src/bin/e_comp.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 6b6bd72..b58d5b2 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -2233,8 +2233,6 @@ _e_comp_win_add(E_Comp *c, Ecore_X_Window win, E_Border 
*bd)
         evas_object_image_colorspace_set(cw->obj, EVAS_COLORSPACE_ARGB8888);
         if (cw->argb) evas_object_image_alpha_set(cw->obj, 1);
         else evas_object_image_alpha_set(cw->obj, 0);
-        if (cw->override)
-          evas_object_pass_events_set(cw->effect_obj, EINA_TRUE);
 
         _e_comp_win_shadow_setup(cw);
         edje_object_part_swallow(cw->effect_obj, "e.swallow.content", 
cw->shobj);
@@ -3757,7 +3755,12 @@ 
_e_comp_shapes_update_comp_win_shape_comp_helper(E_Comp_Win *cw, Eina_Tiler *tb)
         SHAPE_INF("IGNORING DELETED: %u", cw->win);
         return;
      }
-   if (cw->invalid || cw->real_hid || (!cw->visible) || (!cw->shape->visible) 
|| evas_object_pass_events_get(cw->effect_obj) || 
evas_object_pass_events_get(cw->shobj))
+   if (cw->override && cw->shaped)
+     {
+        ERR("SHAPED OVERRIDE WINDOW DETECTED: INPUT SHAPE CUTTING BROKEN!");
+        return;
+     }
+   if (cw->invalid || cw->real_hid || (!cw->visible) || (!cw->shape->visible) 
|| evas_object_pass_events_get(cw->effect_obj))
      {
         SHAPE_DBG("SKIPPING SHAPE");
         return;

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to