forked from enlightenment/enlightenment
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
This commit is contained in:
parent
87c1798281
commit
181f11a03a
|
@ -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);
|
evas_object_image_colorspace_set(cw->obj, EVAS_COLORSPACE_ARGB8888);
|
||||||
if (cw->argb) evas_object_image_alpha_set(cw->obj, 1);
|
if (cw->argb) evas_object_image_alpha_set(cw->obj, 1);
|
||||||
else evas_object_image_alpha_set(cw->obj, 0);
|
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);
|
_e_comp_win_shadow_setup(cw);
|
||||||
edje_object_part_swallow(cw->effect_obj, "e.swallow.content", cw->shobj);
|
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);
|
SHAPE_INF("IGNORING DELETED: %u", cw->win);
|
||||||
return;
|
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");
|
SHAPE_DBG("SKIPPING SHAPE");
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue