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.
This commit is contained in:
Jean-Philippe Andre 2016-08-25 16:03:45 +09:00
parent 7b25619213
commit 443aa91d53
6 changed files with 188 additions and 148 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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);