summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-08-19 16:20:39 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-08-26 10:18:01 +0900
commit57f0c850ec5011313b5ac2f3407b547ef149ac18 (patch)
treeb0ceee2be38c31a69cebba08e1f902ab15657d0e
parent4746627fcfcdda9b73636d0f2a98def6a526b940 (diff)
downloadefl-57f0c850ec5011313b5ac2f3407b547ef149ac18.tar.gz
evas: Move event catcher to evas_callbacks.c
No functional change.
-rw-r--r--src/lib/evas/canvas/evas_callbacks.c67
-rw-r--r--src/lib/evas/canvas/evas_object_main.c64
-rw-r--r--src/lib/evas/include/evas_private.h1
3 files changed, 69 insertions, 63 deletions
diff --git a/src/lib/evas/canvas/evas_callbacks.c b/src/lib/evas/canvas/evas_callbacks.c
index 7de24a3510..6c6f9026df 100644
--- a/src/lib/evas/canvas/evas_callbacks.c
+++ b/src/lib/evas/canvas/evas_callbacks.c
@@ -578,3 +578,70 @@ evas_post_event_callback_remove_full(Evas *eo_e, Evas_Object_Event_Post_Cb func,
}
}
}
+
+static void
+_animator_repeater(void *data, const Eo_Event *event)
+{
+ Evas_Object_Protected_Data *obj = data;
+
+ efl_event_callback_call(obj->object, EFL_EVENT_ANIMATOR_TICK, event->info);
+ DBG("Emitting animator tick on %p.", obj->object);
+}
+
+static void
+_check_event_catcher_add(void *data, const Eo_Event *event)
+{
+ const Efl_Callback_Array_Item *array = event->info;
+ Evas_Object_Protected_Data *obj = data;
+ int i;
+
+ for (i = 0; array[i].desc != NULL; i++)
+ {
+ if (array[i].desc == EFL_EVENT_ANIMATOR_TICK)
+ {
+ if (obj->animator_ref++ > 0) break;
+
+ efl_event_callback_add(obj->layer->evas->evas, EFL_EVENT_ANIMATOR_TICK, _animator_repeater, obj);
+ INF("Registering an animator tick on canvas %p for object %p.",
+ obj->layer->evas->evas, obj->object);
+ }
+ else if (array[i].desc == EFL_GFX_EVENT_MOVE)
+ {
+ obj->move_ref++;
+ }
+ }
+}
+
+static void
+_check_event_catcher_del(void *data, const Eo_Event *event)
+{
+ const Efl_Callback_Array_Item *array = event->info;
+ Evas_Object_Protected_Data *obj = data;
+ int i;
+
+ for (i = 0; array[i].desc != NULL; i++)
+ {
+ if (array[i].desc == EFL_EVENT_ANIMATOR_TICK)
+ {
+ if ((--obj->animator_ref) > 0) break;
+
+ efl_event_callback_del(obj->layer->evas->evas, EFL_EVENT_ANIMATOR_TICK, _animator_repeater, obj);
+ INF("Unregistering an animator tick on canvas %p for object %p.",
+ obj->layer->evas->evas, obj->object);
+ }
+ else if (array[i].desc == EFL_GFX_EVENT_MOVE)
+ {
+ obj->move_ref--;
+ }
+ }
+}
+
+EFL_CALLBACKS_ARRAY_DEFINE(event_catcher_watch,
+ { EFL_EVENT_CALLBACK_ADD, _check_event_catcher_add },
+ { EFL_EVENT_CALLBACK_DEL, _check_event_catcher_del });
+
+void
+evas_object_callback_init(Efl_Canvas_Object *eo_obj, Evas_Object_Protected_Data *obj)
+{
+ efl_event_callback_array_add(eo_obj, event_catcher_watch(), obj);
+}
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index 2f95012a4e..d7e3aa570f 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -86,67 +86,6 @@ _init_cow(void)
return EINA_TRUE;
}
-static void
-_animator_repeater(void *data, const Eo_Event *event)
-{
- Evas_Object_Protected_Data *obj = data;
-
- efl_event_callback_call(obj->object, EFL_EVENT_ANIMATOR_TICK, event->info);
- DBG("Emitting animator tick on %p.", obj->object);
-}
-
-static void
-_check_event_catcher_add(void *data, const Eo_Event *event)
-{
- const Efl_Callback_Array_Item *array = event->info;
- Evas_Object_Protected_Data *obj = data;
- int i;
-
- for (i = 0; array[i].desc != NULL; i++)
- {
- if (array[i].desc == EFL_EVENT_ANIMATOR_TICK)
- {
- if (obj->animator_ref++ > 0) break;
-
- efl_event_callback_add(obj->layer->evas->evas, EFL_EVENT_ANIMATOR_TICK, _animator_repeater, obj);
- INF("Registering an animator tick on canvas %p for object %p.",
- obj->layer->evas->evas, obj->object);
- }
- else if (array[i].desc == EFL_GFX_EVENT_MOVE)
- {
- obj->move_ref++;
- }
- }
-}
-
-static void
-_check_event_catcher_del(void *data, const Eo_Event *event)
-{
- const Efl_Callback_Array_Item *array = event->info;
- Evas_Object_Protected_Data *obj = data;
- int i;
-
- for (i = 0; array[i].desc != NULL; i++)
- {
- if (array[i].desc == EFL_EVENT_ANIMATOR_TICK)
- {
- if ((--obj->animator_ref) > 0) break;
-
- efl_event_callback_del(obj->layer->evas->evas, EFL_EVENT_ANIMATOR_TICK, _animator_repeater, obj);
- INF("Unregistering an animator tick on canvas %p for object %p.",
- obj->layer->evas->evas, obj->object);
- }
- else if (array[i].desc == EFL_GFX_EVENT_MOVE)
- {
- obj->move_ref--;
- }
- }
-}
-
-EFL_CALLBACKS_ARRAY_DEFINE(event_catcher_watch,
- { EFL_EVENT_CALLBACK_ADD, _check_event_catcher_add },
- { EFL_EVENT_CALLBACK_DEL, _check_event_catcher_del });
-
EOLIAN static Eo *
_efl_canvas_object_efl_object_constructor(Eo *eo_obj, Evas_Object_Protected_Data *obj)
{
@@ -176,8 +115,7 @@ _efl_canvas_object_efl_object_constructor(Eo *eo_obj, Evas_Object_Protected_Data
obj->mask = eina_cow_alloc(evas_object_mask_cow);
evas_object_inject(eo_obj, obj, evas);
-
- efl_event_callback_array_add(eo_obj, event_catcher_watch(), obj);
+ evas_object_callback_init(eo_obj, obj);
return eo_obj;
}
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 973b28f9dc..5964a66f1c 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1551,6 +1551,7 @@ void evas_object_clip_across_check(Evas_Object *obj, Evas_Object_Protected_Data
void evas_object_clip_across_clippees_check(Evas_Object *obj, Evas_Object_Protected_Data *pd);
void evas_object_mapped_clip_across_mark(Evas_Object *obj, Evas_Object_Protected_Data *pd);
void evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info);
+void evas_object_callback_init(Efl_Canvas_Object *eo_obj, Evas_Object_Protected_Data *obj);
void evas_object_event_callback_call(Evas_Object *obj, Evas_Object_Protected_Data *pd, Evas_Callback_Type type, void *event_info, int event_id, const Efl_Event_Description *efl_event_desc, Efl_Event *efl_event_info);
Eina_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y);
int evas_mem_free(int mem_required);