evas/event - remove duplication

SVN revision: 78185
This commit is contained in:
ChunEon Park 2012-10-18 12:13:04 +00:00
parent bea89dd14f
commit 9537606427
1 changed files with 21 additions and 36 deletions

View File

@ -2036,6 +2036,24 @@ evas_object_freeze_events_set(Evas_Object *eo_obj, Eina_Bool freeze)
eo_do(eo_obj, evas_obj_freeze_events_set(freeze));
}
static void
_feed_mouse_move_eval_internal(Eo *eo_obj, Evas_Object_Protected_Data *obj)
{
Evas_Public_Data *evas = obj->layer->evas;
Eina_Bool in_output_rect;
in_output_rect = evas_object_is_in_output_rect(eo_obj, obj, evas->pointer.x,
evas->pointer.y, 1, 1);
if ((in_output_rect) &&
((!obj->precise_is_inside) || (evas_object_is_inside(eo_obj, obj,
evas->pointer.x,
evas->pointer.y))))
evas_event_feed_mouse_move(evas->evas,
evas->pointer.x,
evas->pointer.y,
evas->last_timestamp,
NULL);
}
void
_freeze_events_set(Eo *eo_obj, void *_pd, va_list *list)
{
@ -2047,18 +2065,7 @@ _freeze_events_set(Eo *eo_obj, void *_pd, va_list *list)
evas_object_smart_member_cache_invalidate(eo_obj, EINA_FALSE, EINA_TRUE,
EINA_FALSE);
if (obj->freeze_events) return;
if (evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1) &&
((!obj->precise_is_inside) ||
(evas_object_is_inside(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y))))
evas_event_feed_mouse_move(obj->layer->evas->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
obj->layer->evas->last_timestamp,
NULL);
_feed_mouse_move_eval_internal(eo_obj, obj);
}
EAPI Eina_Bool
@ -2098,18 +2105,7 @@ _pass_events_set(Eo *eo_obj, void *_pd, va_list *list)
if (obj->pass_events == pass) return;
obj->pass_events = pass;
evas_object_smart_member_cache_invalidate(eo_obj, EINA_TRUE, EINA_FALSE, EINA_FALSE);
if (evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1) &&
((!obj->precise_is_inside) ||
(evas_object_is_inside(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y))))
evas_event_feed_mouse_move(obj->layer->evas->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
obj->layer->evas->last_timestamp,
NULL);
_feed_mouse_move_eval_internal(eo_obj, obj);
}
EAPI Eina_Bool
@ -2148,18 +2144,7 @@ _repeat_events_set(Eo *eo_obj, void *_pd, va_list *list)
repeat = !!repeat;
if (obj->repeat_events == repeat) return;
obj->repeat_events = repeat;
if (evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1) &&
((!obj->precise_is_inside) ||
(evas_object_is_inside(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y))))
evas_event_feed_mouse_move(obj->layer->evas->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
obj->layer->evas->last_timestamp,
NULL);
_feed_mouse_move_eval_internal(eo_obj, obj);
}
EAPI Eina_Bool