diff --git a/legacy/evas/src/Evas.h b/legacy/evas/src/Evas.h index f90de75e59..e6ed3c1a5b 100644 --- a/legacy/evas/src/Evas.h +++ b/legacy/evas/src/Evas.h @@ -152,6 +152,8 @@ struct _Evas_Object_Any int delete_me; + int pass_events; + void (*object_free) (Evas_Object _o); void (*object_renderer_data_free) (Evas _e, Evas_Object _o); @@ -270,6 +272,7 @@ void evas_set_gradient(Evas e, Evas_Object o, Evas_Gradient grad); void evas_set_angle(Evas e, Evas_Object o, double angle); void evas_set_zoom_scale(Evas e, Evas_Object o, int scale); void evas_set_line_xy(Evas e, Evas_Object o, double x1, double y1, double x2, double y2); +void evas_set_pass_events(Evas e, Evas_Object o, int pass_events); /* cache settings for performance */ void evas_set_font_cache(Evas e, int size); diff --git a/legacy/evas/src/evas_events.c b/legacy/evas/src/evas_events.c index 7a84c0c6fa..c1140633a8 100644 --- a/legacy/evas/src/evas_events.c +++ b/legacy/evas/src/evas_events.c @@ -32,7 +32,7 @@ _evas_highest_object_at_point(Evas e, int x, int y) Evas_Object ob; ob = ll->data; - if (ob->current.visible) + if ((ob->current.visible) && (!ob->pass_events)) { if (_evas_point_in_object(e, ob, x, y)) o = ob; @@ -58,7 +58,7 @@ _evas_objects_at_point(Evas e, int x, int y) Evas_Object ob; ob = ll->data; - if (ob->current.visible) + if ((ob->current.visible) && (!ob->pass_events)) { if (_evas_point_in_object(e, ll->data, x, y)) objs = evas_list_prepend(objs, ll->data); diff --git a/legacy/evas/src/evas_imlib_routines.c b/legacy/evas/src/evas_imlib_routines.c index d243220b06..cb59514c5c 100644 --- a/legacy/evas/src/evas_imlib_routines.c +++ b/legacy/evas/src/evas_imlib_routines.c @@ -416,6 +416,7 @@ void __evas_imlib_line_draw(Display *disp, Window win, else x = x2; if (y1 < y2) y = y1; else y = y2; + w++; h++; for(l = drawable_list; l; l = l->next) { Evas_Imlib_Drawable *dr; diff --git a/legacy/evas/src/evas_misc.c b/legacy/evas/src/evas_misc.c index 664ae25e64..98acd03062 100644 --- a/legacy/evas/src/evas_misc.c +++ b/legacy/evas/src/evas_misc.c @@ -138,6 +138,12 @@ evas_set_zoom_scale(Evas e, Evas_Object o, int scale) e->changed = 1; } +void +evas_set_pass_events(Evas e, Evas_Object o, int pass_events) +{ + o->pass_events = 1; +} + void evas_set_font_cache(Evas e, int size) {