From 181f11a03a121b05ff4aac1b542ceb9ffeec3aba Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 27 Jun 2013 14:39:40 +0100 Subject: [PATCH] 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 generate their own input shape at all --- 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 6b6bd721f..b58d5b22a 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;