From 443aa91d5352810c24403281dffad96f0472b368 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Thu, 25 Aug 2016 16:03:45 +0900 Subject: [PATCH] evas: Simplify internal evas_object_event_callback_call This removes the distinction between legacy and new eo style event info, since all those types have now been ported to eo. --- src/lib/evas/canvas/evas_callbacks.c | 65 +++--- src/lib/evas/canvas/evas_events.c | 241 +++++++++++++---------- src/lib/evas/canvas/evas_focus.c | 4 +- src/lib/evas/canvas/evas_object_inform.c | 18 +- src/lib/evas/canvas/evas_object_main.c | 6 +- src/lib/evas/include/evas_private.h | 2 +- 6 files changed, 188 insertions(+), 148 deletions(-) diff --git a/src/lib/evas/canvas/evas_callbacks.c b/src/lib/evas/canvas/evas_callbacks.c index af3f51d324..81a1e6dd4a 100644 --- a/src/lib/evas/canvas/evas_callbacks.c +++ b/src/lib/evas/canvas/evas_callbacks.c @@ -87,13 +87,22 @@ _legacy_evas_callback_type(const Efl_Event_Description *desc) return EVAS_CALLBACK_LAST; } +typedef enum { + EFL_EVENT_TYPE_NULL, + EFL_EVENT_TYPE_OBJECT, + EFL_EVENT_TYPE_STRUCT, + EFL_EVENT_TYPE_POINTER, + EFL_EVENT_TYPE_KEY, + EFL_EVENT_TYPE_HOLD +} Efl_Event_Info_Type; + typedef struct { EINA_INLIST; Evas_Object_Event_Cb func; void *data; Evas_Callback_Type type; - int efl_event_info; // for key, pointer and hold + Efl_Event_Info_Type efl_event_type; } _eo_evas_object_cb_info; typedef struct @@ -104,13 +113,8 @@ typedef struct Evas_Callback_Type type; } _eo_evas_cb_info; -#define EFL_EVENT_TYPE_LEGACY 0 -#define EFL_EVENT_TYPE_POINTER 1 -#define EFL_EVENT_TYPE_KEY 2 -#define EFL_EVENT_TYPE_HOLD 3 - static int -_evas_event_efl_event_info_exists(Evas_Callback_Type type) +_evas_event_efl_event_info_type(Evas_Callback_Type type) { switch (type) { @@ -125,13 +129,26 @@ _evas_event_efl_event_info_exists(Evas_Callback_Type type) case EVAS_CALLBACK_MULTI_MOVE: case EVAS_CALLBACK_AXIS_UPDATE: return EFL_EVENT_TYPE_POINTER; + case EVAS_CALLBACK_KEY_DOWN: case EVAS_CALLBACK_KEY_UP: return EFL_EVENT_TYPE_KEY; + case EVAS_CALLBACK_HOLD: return EFL_EVENT_TYPE_HOLD; + + case EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN: + case EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT: /* Efl.Canvas.Object */ + return EFL_EVENT_TYPE_OBJECT; + + case EVAS_CALLBACK_RENDER_POST: /* Efl_Gfx_Event_Render_Post */ + return EFL_EVENT_TYPE_STRUCT; + + case EVAS_CALLBACK_DEVICE_CHANGED: /* Efl.Input.Device */ + return EFL_EVENT_TYPE_OBJECT; + default: - return EFL_EVENT_TYPE_LEGACY; + return EFL_EVENT_TYPE_NULL; } } @@ -144,10 +161,10 @@ _eo_evas_object_cb(void *data, const Eo_Event *event) void *event_info; Evas *evas; + if (!info->func) return; evas = evas_object_evas_get(event->object); - if (!info->func) return; - switch (info->efl_event_info) + switch (info->efl_event_type) { case EFL_EVENT_TYPE_POINTER: event_info = efl_event_pointer_legacy_info_fill(efl_event_info, info->type, &event_flags); @@ -161,7 +178,9 @@ _eo_evas_object_cb(void *data, const Eo_Event *event) event_info = efl_event_hold_legacy_info_fill(efl_event_info, &event_flags); break; - case EFL_EVENT_TYPE_LEGACY: + case EFL_EVENT_TYPE_NULL: + case EFL_EVENT_TYPE_STRUCT: + case EFL_EVENT_TYPE_OBJECT: info->func(info->data, evas, event->object, event->info); return; @@ -277,7 +296,7 @@ evas_event_callback_call(Evas *eo_e, Evas_Callback_Type type, void *event_info) void evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Callback_Type type, void *event_info, int event_id, - const Efl_Event_Description *efl_event_desc, Efl_Event *efl_event_info) + const Efl_Event_Description *efl_event_desc) { /* MEM OK */ const Evas_Button_Flags mask = EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK; @@ -308,27 +327,25 @@ evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data if ((type == EVAS_CALLBACK_MOUSE_DOWN) || (type == EVAS_CALLBACK_MOUSE_UP)) { - flags = efl_event_pointer_button_flags_get(efl_event_info); + flags = efl_event_pointer_button_flags_get(event_info); if (flags & mask) { if (obj->last_mouse_down_counter < (e->last_mouse_down_counter - 1)) - efl_event_pointer_button_flags_set(efl_event_info, flags & ~mask); + efl_event_pointer_button_flags_set(event_info, flags & ~mask); } obj->last_mouse_down_counter = e->last_mouse_down_counter; } - if (_evas_event_efl_event_info_exists(type)) + if (!efl_event_desc) { - efl_event_callback_call(eo_obj, efl_event_desc, efl_event_info); - } - else - { - efl_event_callback_call(eo_obj, _legacy_evas_callback_table(type), event_info); - if (efl_event_desc) CRI("Internal error with events!"); // FIXME + /* This can happen for DEL and FREE which are defined only in here */ + efl_event_desc = _legacy_evas_callback_table(type); } + efl_event_callback_call(eo_obj, efl_event_desc, event_info); + if ((type == EVAS_CALLBACK_MOUSE_DOWN) || (type == EVAS_CALLBACK_MOUSE_UP)) - efl_event_pointer_button_flags_set(efl_event_info, flags); + efl_event_pointer_button_flags_set(event_info, flags); nothing_here: if (!obj->no_propagate) @@ -337,7 +354,7 @@ nothing_here: (type <= EVAS_CALLBACK_KEY_UP)) { Evas_Object_Protected_Data *smart_parent = efl_data_scope_get(obj->smart.parent, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(obj->smart.parent, smart_parent, type, event_info, event_id, efl_event_desc, efl_event_info); + evas_object_event_callback_call(obj->smart.parent, smart_parent, type, event_info, event_id, efl_event_desc); } } _evas_unwalk(e); @@ -366,7 +383,7 @@ evas_object_event_callback_priority_add(Evas_Object *eo_obj, Evas_Callback_Type cb_info->func = func; cb_info->data = (void *)data; cb_info->type = type; - cb_info->efl_event_info = _evas_event_efl_event_info_exists(type); + cb_info->efl_event_type = _evas_event_efl_event_info_type(type); const Efl_Event_Description *desc = _legacy_evas_callback_table(type); efl_event_callback_priority_add(eo_obj, desc, priority, _eo_evas_object_cb, cb_info); diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c index 1dd71cc964..f94566b8fe 100644 --- a/src/lib/evas/canvas/evas_events.c +++ b/src/lib/evas/canvas/evas_events.c @@ -439,10 +439,10 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_DOWN, NULL, - event_id, EFL_EVENT_POINTER_DOWN, evt); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_DOWN, NULL, - event_id, EFL_EVENT_FINGER_DOWN, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_DOWN, evt, + event_id, EFL_EVENT_POINTER_DOWN); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_DOWN, evt, + event_id, EFL_EVENT_FINGER_DOWN); if (e->delete_me) break; if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) break; @@ -503,10 +503,10 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, _evas_event_havemap_adjust_f(eo_child, child, &ev->prev, child->mouse_grabbed); ev->action = EFL_POINTER_ACTION_MOVE; - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, NULL, - event_id, EFL_EVENT_POINTER_MOVE, evt); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); } else outs = eina_list_append(outs, eo_child); @@ -530,8 +530,8 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_write); ev->action = EFL_POINTER_ACTION_OUT; - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, NULL, - event_id, EFL_EVENT_POINTER_OUT, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, evt, + event_id, EFL_EVENT_POINTER_OUT); } } } @@ -567,10 +567,10 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, { ev->action = EFL_POINTER_ACTION_MOVE; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, NULL, - event_id, EFL_EVENT_POINTER_MOVE, evt); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); } else if (child->mouse_in) { @@ -579,8 +579,8 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, ev->cur = curpt; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); ev->action = EFL_POINTER_ACTION_OUT; - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, NULL, - event_id, EFL_EVENT_POINTER_OUT, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, evt, + event_id, EFL_EVENT_POINTER_OUT); if (e->delete_me) break; } @@ -601,8 +601,8 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, ev->cur = curpt; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); ev->action = EFL_POINTER_ACTION_IN; - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, NULL, - event_id2, EFL_EVENT_POINTER_IN, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, evt, + event_id2, EFL_EVENT_POINTER_IN); if (e->delete_me) break; } } @@ -667,10 +667,10 @@ _evas_event_source_mouse_up_events(Evas_Object *eo_obj, Evas *eo_e, ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_UP, NULL, - event_id, EFL_EVENT_POINTER_UP, evt); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_UP, NULL, - event_id, EFL_EVENT_FINGER_UP, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_UP, evt, + event_id, EFL_EVENT_POINTER_UP); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_UP, evt, + event_id, EFL_EVENT_FINGER_UP); if (e->delete_me) break; if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) @@ -700,8 +700,8 @@ _evas_event_source_hold_events(Evas_Object *eo_obj, int event_id, Efl_Event_Hold { if (src->delete_me) return; child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, NULL, - event_id, EFL_EVENT_HOLD, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, evt, + event_id, EFL_EVENT_HOLD); if (src->layer->evas->delete_me) break; } } @@ -738,8 +738,8 @@ _evas_event_source_wheel_events(Evas_Object *eo_obj, Evas *eo_e, child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_WHEEL, NULL, - event_id, EFL_EVENT_POINTER_WHEEL, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_WHEEL, evt, + event_id, EFL_EVENT_POINTER_WHEEL); if (e->delete_me) break; } eina_list_free(copy); @@ -790,8 +790,8 @@ _evas_event_source_multi_down_events(Evas_Object_Protected_Data *obj, Evas_Publi child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_DOWN, NULL, - event_id, EFL_EVENT_FINGER_DOWN, ev->eo); + evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_DOWN, evt, + event_id, EFL_EVENT_FINGER_DOWN); if (e->delete_me) break; } eina_list_free(copy); @@ -836,8 +836,8 @@ _evas_event_source_multi_up_events(Evas_Object_Protected_Data *obj, Evas_Public_ } ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_UP, NULL, - event_id, EFL_EVENT_FINGER_UP, ev->eo); + evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_UP, evt, + event_id, EFL_EVENT_FINGER_UP); if (e->delete_me || e->is_frozen) break; } eina_list_free(copy); @@ -888,8 +888,8 @@ _evas_event_source_multi_move_events(Evas_Object_Protected_Data *obj, Evas_Publi child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, ev->eo); + evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); if (e->delete_me || e->is_frozen) break; } } @@ -926,8 +926,8 @@ _evas_event_source_multi_move_events(Evas_Object_Protected_Data *obj, Evas_Publi evas_object_is_inside(eo_child, child, ev->cur.x, ev->cur.y))) { _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, ev->eo); + evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); if (e->delete_me || e->is_frozen) break; } } @@ -993,8 +993,8 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e, child->mouse_in = 1; ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, NULL, - event_id, EFL_EVENT_POINTER_IN, evt); + evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, evt, + event_id, EFL_EVENT_POINTER_IN); if (e->delete_me || e->is_frozen) break; } } @@ -1045,8 +1045,8 @@ _evas_event_source_mouse_out_events(Evas_Object *eo_obj, Evas *eo_e, ev->cur = point; _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, - event_id, EFL_EVENT_POINTER_OUT, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt, + event_id, EFL_EVENT_POINTER_OUT); if (e->is_frozen) continue; } eina_list_free(copy); @@ -1215,6 +1215,7 @@ evas_event_thaw_eval(Evas *eo_e) static void _canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) { + Efl_Event_Pointer *evt; Eina_List *l, *copy; Evas_Object *eo_obj; int event_id, b; @@ -1234,6 +1235,7 @@ _canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da if (e->is_frozen) return; e->last_timestamp = ev->timestamp; eo_e = e->evas; + evt = ev->eo; event_id = _evas_object_event_new(); @@ -1287,12 +1289,12 @@ _canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da ev->cur.x = e->pointer.x; ev->cur.y = e->pointer.y; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_DOWN, NULL, - event_id, EFL_EVENT_POINTER_DOWN, ev->eo); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, NULL, - event_id, EFL_EVENT_FINGER_DOWN, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_DOWN, evt, + event_id, EFL_EVENT_POINTER_DOWN); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, evt, + event_id, EFL_EVENT_FINGER_DOWN); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) - _evas_event_source_mouse_down_events(eo_obj, eo_e, ev->eo, event_id); + _evas_event_source_mouse_down_events(eo_obj, eo_e, evt, event_id); if (e->is_frozen || e->delete_me) break; if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) break; @@ -1344,8 +1346,8 @@ _post_up_handle(Evas_Public_Data *e, Efl_Event_Pointer *parent_ev) ev->cur.x = e->pointer.x; ev->cur.y = e->pointer.y; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, - event_id, EFL_EVENT_POINTER_OUT, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt, + event_id, EFL_EVENT_POINTER_OUT); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); if (e->delete_me) break; @@ -1374,8 +1376,8 @@ _post_up_handle(Evas_Public_Data *e, Efl_Event_Pointer *parent_ev) ev->cur.x = e->pointer.x; ev->cur.y = e->pointer.y; _evas_event_havemap_adjust_f(eo_obj_itr, obj_itr, &ev->cur, obj_itr->mouse_grabbed); - evas_object_event_callback_call(eo_obj_itr, obj_itr, EVAS_CALLBACK_MOUSE_IN, NULL, - event_id, EFL_EVENT_POINTER_IN, evt); + evas_object_event_callback_call(eo_obj_itr, obj_itr, EVAS_CALLBACK_MOUSE_IN, evt, + event_id, EFL_EVENT_POINTER_IN); if ((obj_itr->proxy->is_proxy) && (obj_itr->proxy->src_events)) _evas_event_source_mouse_in_events(eo_obj_itr, eo_e, evt, event_id); @@ -1413,6 +1415,7 @@ _post_up_handle(Evas_Public_Data *e, Efl_Event_Pointer *parent_ev) static void _canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) { + Efl_Event_Pointer *evt; Eina_List *l, *copy; Evas_Object *eo_obj; int event_id, b; @@ -1432,6 +1435,7 @@ _canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data if (e->is_frozen) return; e->last_timestamp = ev->timestamp; eo_e = e->evas; + evt = ev->eo; event_id = _evas_object_event_new(); @@ -1465,12 +1469,12 @@ _canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data ev->cur.x = e->pointer.x; ev->cur.y = e->pointer.y; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_UP, NULL, - event_id, EFL_EVENT_POINTER_UP, ev->eo); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, NULL, - event_id, EFL_EVENT_FINGER_UP, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_UP, evt, + event_id, EFL_EVENT_POINTER_UP); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, evt, + event_id, EFL_EVENT_FINGER_UP); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) - _evas_event_source_mouse_up_events(eo_obj, eo_e, ev->eo, event_id); + _evas_event_source_mouse_up_events(eo_obj, eo_e, evt, event_id); if (e->delete_me) break; } } @@ -1485,7 +1489,7 @@ _canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data _evas_post_event_callback_call(eo_e, e); if (e->pointer.mouse_grabbed == 0) - _post_up_handle(e, ev->eo); + _post_up_handle(e, evt); if (e->pointer.mouse_grabbed < 0) { @@ -1654,8 +1658,8 @@ _canvas_event_feed_mouse_wheel_internal(Eo *eo_e, Efl_Event_Pointer_Data *pe) ev->cur.x = e->pointer.x; ev->cur.y = e->pointer.y; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_WHEEL, NULL, - event_id, EFL_EVENT_POINTER_WHEEL, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_WHEEL, evt, + event_id, EFL_EVENT_POINTER_WHEEL); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_wheel_events(eo_obj, eo_e, evt, event_id); if (e->delete_me || e->is_frozen) break; @@ -1756,10 +1760,10 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da { ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, NULL, - event_id, EFL_EVENT_POINTER_MOVE, evt); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); } @@ -1796,8 +1800,8 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da e->pointer.object.in = eina_list_remove(e->pointer.object.in, eo_obj); ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, - event_id, EFL_EVENT_POINTER_OUT, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt, + event_id, EFL_EVENT_POINTER_OUT); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); } @@ -1841,10 +1845,10 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); ev->action = EFL_POINTER_ACTION_MOVE; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, NULL, - event_id, EFL_EVENT_POINTER_MOVE, evt); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); } @@ -1857,8 +1861,8 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); ev->action = EFL_POINTER_ACTION_OUT; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, - event_id, EFL_EVENT_POINTER_OUT, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt, + event_id, EFL_EVENT_POINTER_OUT); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); if (e->delete_me) break; @@ -1884,8 +1888,8 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); ev->action = EFL_POINTER_ACTION_IN; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, NULL, - event_id, EFL_EVENT_POINTER_IN, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt, + event_id, EFL_EVENT_POINTER_IN); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); @@ -1973,10 +1977,10 @@ nogrep: ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); ev->action = EFL_POINTER_ACTION_MOVE; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, NULL, - event_id, EFL_EVENT_POINTER_MOVE, evt); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt, + event_id, EFL_EVENT_POINTER_MOVE); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); } @@ -1990,8 +1994,8 @@ nogrep: ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); ev->action = EFL_POINTER_ACTION_OUT; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, - event_id, EFL_EVENT_POINTER_OUT, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt, + event_id, EFL_EVENT_POINTER_OUT); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); } @@ -2015,8 +2019,8 @@ nogrep: ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); ev->action = EFL_POINTER_ACTION_IN; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, NULL, - event_id, EFL_EVENT_POINTER_IN, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt, + event_id, EFL_EVENT_POINTER_IN); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); if (e->delete_me) break; @@ -2075,6 +2079,7 @@ static void _canvas_event_feed_mouse_in_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev) { Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); + Efl_Event_Pointer *evt; Eina_List *ins; Eina_List *l; Evas_Object *eo_obj; @@ -2088,6 +2093,7 @@ _canvas_event_feed_mouse_in_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev) e->last_timestamp = ev->timestamp; if (e->pointer.mouse_grabbed != 0) return; + evt = ev->eo; ev->action = EFL_POINTER_ACTION_IN; ev->pressed_buttons = e->pointer.button; ev->cur.x = e->pointer.x; @@ -2112,10 +2118,10 @@ _canvas_event_feed_mouse_in_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev) ev->cur.x = e->pointer.x; ev->cur.y = e->pointer.y; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, NULL, - event_id, EFL_EVENT_POINTER_IN, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt, + event_id, EFL_EVENT_POINTER_IN); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) - _evas_event_source_mouse_in_events(eo_obj, eo_e, ev->eo, event_id); + _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); if (e->delete_me || e->is_frozen) break; } } @@ -2134,6 +2140,7 @@ static void _canvas_event_feed_mouse_out_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev) { Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); + Efl_Event_Pointer *evt; Eina_List *l, *copy; Evas_Object *eo_obj; int event_id; @@ -2146,6 +2153,7 @@ _canvas_event_feed_mouse_out_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev) event_id = _evas_object_event_new(); + evt = ev->eo; ev->action = EFL_POINTER_ACTION_OUT; ev->pressed_buttons = e->pointer.button; ev->cur.x = e->pointer.x; @@ -2169,10 +2177,10 @@ _canvas_event_feed_mouse_out_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev) ev->cur.x = e->pointer.x; ev->cur.y = e->pointer.y; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, - event_id, EFL_EVENT_POINTER_OUT, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt, + event_id, EFL_EVENT_POINTER_OUT); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) - _evas_event_source_mouse_out_events(eo_obj, eo_e, ev->eo, event_id); + _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); if (e->delete_me || e->is_frozen) break; } obj->mouse_grabbed = 0; @@ -2225,6 +2233,7 @@ evas_event_feed_mouse_out(Eo *eo_e, unsigned int timestamp, const void *data) static void _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) { + Efl_Event_Pointer *evt; Eina_List *l, *copy; Evas_Object *eo_obj; Eina_Vector2 point; @@ -2244,6 +2253,7 @@ _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da event_id = _evas_object_event_new(); point = ev->cur; + evt = ev->eo; ev->action = EFL_POINTER_ACTION_DOWN; ev->modifiers = &(e->modifiers); ev->locks = &(e->locks); @@ -2272,10 +2282,10 @@ _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, NULL, - event_id, EFL_EVENT_FINGER_DOWN, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, evt, + event_id, EFL_EVENT_FINGER_DOWN); if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) - _evas_event_source_multi_down_events(obj, e, ev->eo, event_id); + _evas_event_source_multi_down_events(obj, e, evt, event_id); if (e->delete_me || e->is_frozen) break; } eina_list_free(copy); @@ -2291,6 +2301,7 @@ _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da static void _canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) { + Efl_Event_Pointer *evt; Eina_List *l, *copy; Evas_Object *eo_obj; Eina_Vector2 point; @@ -2310,6 +2321,7 @@ _canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data event_id = _evas_object_event_new(); point = ev->cur; + evt = ev->eo; ev->action = EFL_POINTER_ACTION_UP; ev->modifiers = &(e->modifiers); ev->locks = &(e->locks); @@ -2332,14 +2344,14 @@ _canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data obj->mouse_grabbed--; e->pointer.mouse_grabbed--; } - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, NULL, - event_id, EFL_EVENT_FINGER_UP, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, evt, + event_id, EFL_EVENT_FINGER_UP); if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) - _evas_event_source_multi_up_events(obj, e, ev->eo, event_id); + _evas_event_source_multi_up_events(obj, e, evt, event_id); if (e->delete_me || e->is_frozen) break; } eina_list_free(copy); - if ((e->pointer.mouse_grabbed == 0) && !_post_up_handle(e, ev->eo)) + if ((e->pointer.mouse_grabbed == 0) && !_post_up_handle(e, evt)) _evas_post_event_callback_call(eo_e, e); /* remove released touch point from the touch point list */ _evas_touch_point_remove(eo_e, ev->tool); @@ -2440,6 +2452,7 @@ evas_event_feed_multi_up(Eo *eo_e, int d, int x, int y, double rad, double radx, static void _canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) { + Efl_Event_Pointer *evt; Eina_List *l, *copy; Evas_Object *eo_obj; Eina_Vector2 point; @@ -2456,6 +2469,7 @@ _canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da if ((!e->pointer.inside) && (e->pointer.mouse_grabbed == 0)) return; + evt = ev->eo; ev->cur.x = e->pointer.x; ev->cur.y = e->pointer.y; ev->modifiers = &(e->modifiers); @@ -2487,10 +2501,10 @@ _canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da { ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) - _evas_event_source_multi_move_events(obj, e, ev->eo, event_id); + _evas_event_source_multi_move_events(obj, e, evt, event_id); if (e->delete_me || e->is_frozen) break; } @@ -2527,10 +2541,10 @@ _canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da { ev->cur = point; _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, - event_id, EFL_EVENT_FINGER_MOVE, ev->eo); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt, + event_id, EFL_EVENT_FINGER_MOVE); if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) - _evas_event_source_multi_move_events(obj, e, ev->eo, event_id); + _evas_event_source_multi_move_events(obj, e, evt, event_id); } if (e->delete_me || e->is_frozen) break; } @@ -2579,6 +2593,7 @@ static void _canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev) { Eina_Bool exclusive = EINA_FALSE; + Efl_Event_Pointer *evt; int event_id = 0; if (!e || !ev) return; @@ -2588,6 +2603,7 @@ _canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev event_id = _evas_object_event_new(); + evt = ev->eo; ev->modifiers = &(e->modifiers); ev->locks = &(e->locks); ev->event_flags = e->default_event_flags; @@ -2619,8 +2635,8 @@ _canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev if (!e->is_frozen && !evas_event_freezes_through(g->object, object_obj)) { - evas_object_event_callback_call(g->object, object_obj, EVAS_CALLBACK_KEY_DOWN, NULL, - event_id, EFL_EVENT_KEY_DOWN, ev->eo); + evas_object_event_callback_call(g->object, object_obj, EVAS_CALLBACK_KEY_DOWN, evt, + event_id, EFL_EVENT_KEY_DOWN); } if (g->exclusive) exclusive = EINA_TRUE; } @@ -2652,8 +2668,8 @@ _canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev Evas_Object_Protected_Data *focused_obj = efl_data_scope_get(e->focused, EFL_CANVAS_OBJECT_CLASS); if (!e->is_frozen && !evas_event_freezes_through(e->focused, focused_obj)) { - evas_object_event_callback_call(e->focused, focused_obj, EVAS_CALLBACK_KEY_DOWN, NULL, - event_id, EFL_EVENT_KEY_DOWN, ev->eo); + evas_object_event_callback_call(e->focused, focused_obj, EVAS_CALLBACK_KEY_DOWN, evt, + event_id, EFL_EVENT_KEY_DOWN); } } _evas_post_event_callback_call(e->evas, e); @@ -2666,6 +2682,7 @@ static void _canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev) { Eina_Bool exclusive = EINA_FALSE; + Efl_Event_Pointer *evt; int event_id = 0; if (!e || !ev) return; @@ -2675,6 +2692,7 @@ _canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev) event_id = _evas_object_event_new(); + evt = ev->eo; ev->modifiers = &(e->modifiers); ev->locks = &(e->locks); ev->event_flags = e->default_event_flags; @@ -2706,8 +2724,8 @@ _canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev) !evas_event_freezes_through(g->object, object_obj)) { evas_object_event_callback_call - (g->object, object_obj, EVAS_CALLBACK_KEY_UP, NULL, - event_id, EFL_EVENT_KEY_UP, ev->eo); + (g->object, object_obj, EVAS_CALLBACK_KEY_UP, evt, + event_id, EFL_EVENT_KEY_UP); } if (g->exclusive) exclusive = EINA_TRUE; } @@ -2741,8 +2759,8 @@ _canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev) if (!e->is_frozen && !evas_event_freezes_through(e->focused, focused_obj)) { evas_object_event_callback_call - (e->focused, focused_obj, EVAS_CALLBACK_KEY_UP, NULL, - event_id, EFL_EVENT_KEY_UP, ev->eo); + (e->focused, focused_obj, EVAS_CALLBACK_KEY_UP, evt, + event_id, EFL_EVENT_KEY_UP); } } _evas_post_event_callback_call(e->evas, e); @@ -2847,8 +2865,8 @@ evas_event_feed_hold(Eo *eo_e, int hold, unsigned int timestamp, const void *dat Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); if ( !evas_event_freezes_through(eo_obj, obj)) { - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, NULL, - event_id, EFL_EVENT_HOLD, evt); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, evt, + event_id, EFL_EVENT_HOLD); if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) _evas_event_source_hold_events(eo_obj, event_id, evt); } @@ -2866,6 +2884,7 @@ evas_event_feed_hold(Eo *eo_e, int hold, unsigned int timestamp, const void *dat void _canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) { + Efl_Event_Pointer *evt; Eina_List *l, *copy; Evas_Object *eo_obj; int event_id = 0; @@ -2879,6 +2898,7 @@ _canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_D ev->action = EFL_POINTER_ACTION_AXIS; event_id = _evas_object_event_new(); + evt = ev->eo; if (ev->device) efl_ref(ev->device); @@ -2891,8 +2911,8 @@ _canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_D if (!evas_event_freezes_through(eo_obj, obj)) { evas_object_event_callback_call(eo_obj, obj, - EVAS_CALLBACK_AXIS_UPDATE, NULL, - event_id, EFL_EVENT_POINTER_AXIS, ev->eo); + EVAS_CALLBACK_AXIS_UPDATE, evt, + event_id, EFL_EVENT_POINTER_AXIS); if (e->delete_me || e->is_frozen) break; } } @@ -2918,7 +2938,6 @@ evas_event_feed_axis_update(Evas *eo_e, unsigned int timestamp, int device, int ev->data = (void *) data; ev->timestamp = timestamp; ev->action = EFL_POINTER_ACTION_AXIS; - ev->device = _evas_device_top_get(eo_e); // FIXME ev->tool = toolid; // see also ecore_evas.c @@ -2960,6 +2979,10 @@ evas_event_feed_axis_update(Evas *eo_e, unsigned int timestamp, int device, int } } + /* FIXME: set proper device based on the device id (X or WL specific) */ + ev->device = _evas_device_top_get(eo_e); // FIXME + (void) device; + _canvas_event_feed_axis_update_internal(e, ev); efl_del(evt); diff --git a/src/lib/evas/canvas/evas_focus.c b/src/lib/evas/canvas/evas_focus.c index 7b896706f0..fc1515f3a6 100644 --- a/src/lib/evas/canvas/evas_focus.c +++ b/src/lib/evas/canvas/evas_focus.c @@ -27,7 +27,7 @@ _efl_canvas_object_key_focus_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Ei if (obj->layer->evas->focused) goto end; obj->focused = 1; obj->layer->evas->focused = eo_obj; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id, NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id, EFL_CANVAS_OBJECT_EVENT_FOCUS_IN); evas_event_callback_call(obj->layer->evas->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, eo_obj); } @@ -35,7 +35,7 @@ _efl_canvas_object_key_focus_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Ei { obj->focused = 0; obj->layer->evas->focused = NULL; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, event_id, NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, event_id, EFL_CANVAS_OBJECT_EVENT_FOCUS_OUT); evas_event_callback_call(obj->layer->evas->evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, eo_obj); } diff --git a/src/lib/evas/canvas/evas_object_inform.c b/src/lib/evas/canvas/evas_object_inform.c index 9d77ad9b57..77b7f1ca43 100644 --- a/src/lib/evas/canvas/evas_object_inform.c +++ b/src/lib/evas/canvas/evas_object_inform.c @@ -8,7 +8,7 @@ evas_object_inform_call_show(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_SHOW, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_SHOW, NULL, _evas_object_event_new(), EFL_GFX_EVENT_SHOW); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } @@ -17,14 +17,14 @@ evas_object_inform_call_hide(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HIDE, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HIDE, NULL, _evas_object_event_new(), EFL_GFX_EVENT_HIDE); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } void evas_object_inform_call_move(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) { - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOVE, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOVE, NULL, _evas_object_event_new(), EFL_GFX_EVENT_MOVE); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } @@ -32,7 +32,7 @@ void evas_object_inform_call_resize(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_RESIZE, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_RESIZE, NULL, _evas_object_event_new(), EFL_GFX_EVENT_RESIZE); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } @@ -40,7 +40,7 @@ void evas_object_inform_call_restack(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_RESTACK, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_RESTACK, NULL, _evas_object_event_new(), EFL_GFX_EVENT_RESTACK); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } @@ -48,7 +48,7 @@ void evas_object_inform_call_changed_size_hints(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, NULL, _evas_object_event_new(), EFL_GFX_EVENT_CHANGE_SIZE_HINTS); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } @@ -62,7 +62,7 @@ evas_object_inform_call_image_preloaded(Evas_Object *eo_obj) _evas_object_image_preloading_check(eo_obj); _evas_object_image_preloading_set(eo_obj, 0); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_PRELOADED, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_PRELOADED, NULL, _evas_object_event_new(), EFL_IMAGE_EVENT_PRELOAD); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } @@ -70,7 +70,7 @@ void evas_object_inform_call_image_unloaded(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_UNLOADED, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_UNLOADED, NULL, _evas_object_event_new(), EFL_IMAGE_EVENT_UNLOAD); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } @@ -78,6 +78,6 @@ void evas_object_inform_call_image_resize(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_RESIZE, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_RESIZE, NULL, _evas_object_event_new(), EFL_IMAGE_EVENT_RESIZE); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index d7e3aa570f..1e63b5c72c 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -693,11 +693,11 @@ _efl_canvas_object_efl_object_destructor(Eo *eo_obj, Evas_Object_Protected_Data obj->focused = EINA_FALSE; if ((obj->layer) && (obj->layer->evas)) obj->layer->evas->focused = NULL; - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, _evas_object_event_new(), EFL_CANVAS_OBJECT_EVENT_FOCUS_OUT); if ((obj->layer) && (obj->layer->evas)) _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); } - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_DEL, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_DEL, NULL, _evas_object_event_new(), NULL); if ((obj->layer) && (obj->layer->evas)) _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); if ((obj->mouse_grabbed > 0) && (obj->layer) && (obj->layer->evas)) @@ -755,7 +755,7 @@ _efl_canvas_object_efl_object_destructor(Eo *eo_obj, Evas_Object_Protected_Data evas_object_map_set(eo_obj, NULL); if (obj->is_smart) evas_object_smart_del(eo_obj); - evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FREE, NULL, _evas_object_event_new(), NULL, NULL); + evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FREE, NULL, _evas_object_event_new(), NULL); if ((obj->layer) && (obj->layer->evas)) _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); evas_object_smart_cleanup(eo_obj); diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index ceac5872ad..b3b52a1560 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1552,7 +1552,7 @@ void evas_object_clip_across_clippees_check(Evas_Object *obj, Evas_Object_Protec 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); +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); Eina_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y); int evas_mem_free(int mem_required); int evas_mem_degrade(int mem_required);