evas/proxy - skip the events on invisible source obj.
SVN revision: 78313
This commit is contained in:
parent
bdc4de91cd
commit
916f9ce50c
|
@ -60,6 +60,7 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in,
|
|||
return in;
|
||||
}
|
||||
if (evas_event_passes_through(eo_obj, obj)) continue;
|
||||
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
|
||||
if ((obj->cur.visible) && (obj->delete_me == 0) &&
|
||||
(!obj->clip.clipees) &&
|
||||
(evas_object_clippers_is_visible(eo_obj, obj)))
|
||||
|
@ -827,6 +828,7 @@ _canvas_event_feed_mouse_move(Eo *eo_e, void *_pd, va_list *list)
|
|||
obj->mouse_grabbed) &&
|
||||
(!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)) &&
|
||||
(!obj->clip.clipees))
|
||||
{
|
||||
if ((px != x) || (py != y))
|
||||
|
@ -968,6 +970,7 @@ _canvas_event_feed_mouse_move(Eo *eo_e, void *_pd, va_list *list)
|
|||
eina_list_data_find(ins, eo_obj) &&
|
||||
(!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)) &&
|
||||
(!obj->clip.clipees) &&
|
||||
((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y))
|
||||
)
|
||||
|
@ -1141,6 +1144,7 @@ nogrep:
|
|||
eina_list_data_find(newin, eo_obj) &&
|
||||
(!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)) &&
|
||||
(!obj->clip.clipees) &&
|
||||
((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y))
|
||||
)
|
||||
|
@ -1654,9 +1658,11 @@ _canvas_event_feed_multi_move(Eo *eo_e, void *_pd, va_list *list)
|
|||
{
|
||||
Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
|
||||
if ((!e->is_frozen) &&
|
||||
(evas_object_clippers_is_visible(eo_obj, obj) || obj->mouse_grabbed) &&
|
||||
(evas_object_clippers_is_visible(eo_obj, obj) ||
|
||||
obj->mouse_grabbed) &&
|
||||
(!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)) &&
|
||||
(!obj->clip.clipees))
|
||||
{
|
||||
ev.cur.canvas.x = x;
|
||||
|
@ -1725,6 +1731,7 @@ _canvas_event_feed_multi_move(Eo *eo_e, void *_pd, va_list *list)
|
|||
eina_list_data_find(ins, eo_obj) &&
|
||||
(!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)) &&
|
||||
(!obj->clip.clipees) &&
|
||||
((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y))
|
||||
)
|
||||
|
|
|
@ -113,7 +113,8 @@ _line_xy_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
if (!(obj->layer->evas->is_frozen))
|
||||
{
|
||||
if (!evas_event_passes_through(eo_obj, obj) &&
|
||||
!evas_event_freezes_through(eo_obj, obj))
|
||||
!evas_event_freezes_through(eo_obj, obj) &&
|
||||
!evas_object_is_source_invisible(eo_obj, obj))
|
||||
was = evas_object_is_in_output_rect(eo_obj, obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y,
|
||||
|
@ -158,7 +159,8 @@ _line_xy_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
if (!evas_event_passes_through(eo_obj, obj) &&
|
||||
!evas_event_freezes_through(eo_obj, obj))
|
||||
!evas_event_freezes_through(eo_obj, obj) &&
|
||||
!evas_object_is_source_invisible(eo_obj, obj))
|
||||
{
|
||||
if ((is ^ was) && obj->cur.visible)
|
||||
evas_event_feed_mouse_move(obj->layer->evas->evas,
|
||||
|
|
|
@ -696,7 +696,7 @@ _position_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
Evas_Coord y = va_arg(*list, Evas_Coord);
|
||||
|
||||
Evas_Public_Data *evas;
|
||||
int is, was = 0, pass = 0, freeze = 0;
|
||||
int is, was = 0, pass = 0, freeze = 0, source_invisible = 0;
|
||||
int nx = 0, ny = 0;
|
||||
|
||||
if (obj->delete_me) return;
|
||||
|
@ -729,7 +729,8 @@ _position_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
{
|
||||
pass = evas_event_passes_through(eo_obj, obj);
|
||||
freeze = evas_event_freezes_through(eo_obj, obj);
|
||||
if ((!pass) && (!freeze))
|
||||
source_invisible = evas_object_is_source_invisible(eo_obj, obj);
|
||||
if ((!pass) && (!freeze) && (!source_invisible))
|
||||
was = evas_object_is_in_output_rect(eo_obj, obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
|
@ -790,7 +791,7 @@ _size_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
Evas_Coord w = va_arg(*list, Evas_Coord);
|
||||
Evas_Coord h = va_arg(*list, Evas_Coord);
|
||||
|
||||
int is, was = 0, pass = 0, freeze =0;
|
||||
int is, was = 0, pass = 0, freeze = 0, source_invisible = 0;
|
||||
|
||||
if (obj->delete_me) return;
|
||||
if (w < 0) w = 0; if (h < 0) h = 0;
|
||||
|
@ -809,6 +810,7 @@ _size_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
{
|
||||
pass = evas_event_passes_through(eo_obj, obj);
|
||||
freeze = evas_event_freezes_through(eo_obj, obj);
|
||||
source_invisible = evas_object_is_source_invisible(eo_obj, obj);
|
||||
if ((!pass) && (!freeze))
|
||||
was = evas_object_is_in_output_rect(eo_obj, obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
|
@ -1403,7 +1405,8 @@ _show (Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
|
|||
evas_object_clip_across_clippees_check(eo_obj, obj);
|
||||
evas_object_recalc_clippees(eo_obj, obj);
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)))
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)))
|
||||
{
|
||||
if (!obj->is_smart)
|
||||
{
|
||||
|
@ -1445,7 +1448,8 @@ _hide(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
|
|||
evas_object_clip_across_clippees_check(eo_obj, obj);
|
||||
evas_object_recalc_clippees(eo_obj, obj);
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)))
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)))
|
||||
{
|
||||
if ((!obj->is_smart) ||
|
||||
((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
|
||||
|
@ -1833,6 +1837,7 @@ _canvas_object_top_at_xy_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
|
|||
if (obj->delete_me) continue;
|
||||
if ((!include_pass_events_objects) &&
|
||||
(evas_event_passes_through(eo_obj, obj))) continue;
|
||||
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
|
||||
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
|
||||
evas_object_clip_recalc(eo_obj, obj);
|
||||
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
|
||||
|
@ -1903,6 +1908,7 @@ _canvas_object_top_in_rectangle_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *li
|
|||
if (obj->delete_me) continue;
|
||||
if ((!include_pass_events_objects) &&
|
||||
(evas_event_passes_through(eo_obj, obj))) continue;
|
||||
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
|
||||
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
|
||||
evas_object_clip_recalc(eo_obj, obj);
|
||||
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
|
||||
|
@ -1957,6 +1963,7 @@ _canvas_objects_at_xy_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
|
|||
if (obj->delete_me) continue;
|
||||
if ((!include_pass_events_objects) &&
|
||||
(evas_event_passes_through(eo_obj, obj))) continue;
|
||||
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
|
||||
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
|
||||
evas_object_clip_recalc(eo_obj, obj);
|
||||
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
|
||||
|
@ -2028,6 +2035,7 @@ _canvas_objects_in_rectangle_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
|
|||
if (obj->delete_me) continue;
|
||||
if ((!include_pass_events_objects) &&
|
||||
(evas_event_passes_through(eo_obj, obj))) continue;
|
||||
if (evas_object_is_source_invisible(eo_obj, obj)) continue;
|
||||
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
|
||||
evas_object_clip_recalc(eo_obj, obj);
|
||||
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
|
||||
|
|
|
@ -120,7 +120,8 @@ _polygon_point_add(Eo *eo_obj, void *_pd, va_list *list)
|
|||
if (!obj->layer->evas->is_frozen)
|
||||
{
|
||||
if (!evas_event_passes_through(eo_obj, obj) &&
|
||||
!evas_event_freezes_through(eo_obj, obj))
|
||||
!evas_event_freezes_through(eo_obj, obj) &&
|
||||
!evas_object_is_source_invisible(eo_obj, obj))
|
||||
was = evas_object_is_in_output_rect(eo_obj, obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y,
|
||||
|
@ -189,7 +190,8 @@ _polygon_point_add(Eo *eo_obj, void *_pd, va_list *list)
|
|||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
if (!evas_event_passes_through(eo_obj, obj) &&
|
||||
!evas_event_freezes_through(eo_obj, obj) )
|
||||
!evas_event_freezes_through(eo_obj, obj) &&
|
||||
!evas_object_is_source_invisible(eo_obj, obj))
|
||||
{
|
||||
if ((is ^ was) && obj->cur.visible)
|
||||
evas_event_feed_mouse_move(obj->layer->evas->evas,
|
||||
|
|
|
@ -346,7 +346,7 @@ static void
|
|||
_text_font_set(Eo *eo_obj, void *_pd, va_list *list)
|
||||
{
|
||||
Evas_Object_Text *o = _pd;
|
||||
int is, was = 0, pass = 0, freeze = 0;
|
||||
int is, was = 0, pass = 0, freeze = 0, source_invisible = 0;
|
||||
Evas_Font_Description *fdesc;
|
||||
|
||||
const char *font = va_arg(*list, const char*);
|
||||
|
@ -375,7 +375,8 @@ _text_font_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
{
|
||||
pass = evas_event_passes_through(eo_obj, obj);
|
||||
freeze = evas_event_freezes_through(eo_obj, obj);
|
||||
if ((!pass) && (!freeze))
|
||||
source_invisible = evas_object_is_source_invisible(eo_obj, obj);
|
||||
if ((!pass) && (!freeze) && (!source_invisible))
|
||||
was = evas_object_is_in_output_rect(eo_obj, obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y, 1, 1);
|
||||
|
|
|
@ -1078,7 +1078,7 @@ _font_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
|
||||
const char *font_name = va_arg(*list, const char *);
|
||||
Evas_Font_Size font_size = va_arg(*list, Evas_Font_Size);
|
||||
int is, was = 0, pass = 0, freeze = 0;
|
||||
int is, was = 0, pass = 0, freeze = 0, source_invisible = 0;
|
||||
Evas_Font_Description *font_description;
|
||||
|
||||
if ((!font_name) || (!*font_name) || (font_size <= 0))
|
||||
|
@ -1107,7 +1107,8 @@ _font_set(Eo *eo_obj, void *_pd, va_list *list)
|
|||
{
|
||||
pass = evas_event_passes_through(eo_obj, obj);
|
||||
freeze = evas_event_freezes_through(eo_obj, obj);
|
||||
if ((!pass) && (!freeze))
|
||||
source_invisible = evas_object_is_source_invisible(eo_obj, obj);
|
||||
if ((!pass) && (!freeze) && (!source_invisible))
|
||||
was = evas_object_is_in_output_rect(eo_obj, obj,
|
||||
obj->layer->evas->pointer.x,
|
||||
obj->layer->evas->pointer.y,
|
||||
|
|
|
@ -74,7 +74,9 @@ _raise(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
evas_object_change(eo_obj, obj);
|
||||
evas_object_inform_call_restack(eo_obj);
|
||||
if (obj->layer->evas->is_frozen) return;
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj)))
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)))
|
||||
{
|
||||
if (!obj->is_smart)
|
||||
{
|
||||
|
@ -129,7 +131,9 @@ _lower(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
evas_object_change(eo_obj, obj);
|
||||
evas_object_inform_call_restack(eo_obj);
|
||||
if (obj->layer->evas->is_frozen) return;
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj)))
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)))
|
||||
{
|
||||
if (!obj->is_smart)
|
||||
{
|
||||
|
@ -214,7 +218,9 @@ _stack_above(Eo *eo_obj, void *_pd, va_list *list)
|
|||
evas_object_change(eo_obj, obj);
|
||||
evas_object_inform_call_restack(eo_obj);
|
||||
if (obj->layer->evas->is_frozen) return;
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj)))
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)))
|
||||
{
|
||||
if (!obj->is_smart)
|
||||
{
|
||||
|
@ -299,7 +305,9 @@ _stack_below(Eo *eo_obj, void *_pd, va_list *list)
|
|||
evas_object_change(eo_obj, obj);
|
||||
evas_object_inform_call_restack(eo_obj);
|
||||
if (obj->layer->evas->is_frozen) return;
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj)))
|
||||
if ((!evas_event_passes_through(eo_obj, obj)) &&
|
||||
(!evas_event_freezes_through(eo_obj, obj)) &&
|
||||
(!evas_object_is_source_invisible(eo_obj, obj)))
|
||||
{
|
||||
if (!obj->is_smart)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue