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; 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 typedef struct
{ {
EINA_INLIST; EINA_INLIST;
Evas_Object_Event_Cb func; Evas_Object_Event_Cb func;
void *data; void *data;
Evas_Callback_Type type; 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; } _eo_evas_object_cb_info;
typedef struct typedef struct
@ -104,13 +113,8 @@ typedef struct
Evas_Callback_Type type; Evas_Callback_Type type;
} _eo_evas_cb_info; } _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 static int
_evas_event_efl_event_info_exists(Evas_Callback_Type type) _evas_event_efl_event_info_type(Evas_Callback_Type type)
{ {
switch (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_MULTI_MOVE:
case EVAS_CALLBACK_AXIS_UPDATE: case EVAS_CALLBACK_AXIS_UPDATE:
return EFL_EVENT_TYPE_POINTER; return EFL_EVENT_TYPE_POINTER;
case EVAS_CALLBACK_KEY_DOWN: case EVAS_CALLBACK_KEY_DOWN:
case EVAS_CALLBACK_KEY_UP: case EVAS_CALLBACK_KEY_UP:
return EFL_EVENT_TYPE_KEY; return EFL_EVENT_TYPE_KEY;
case EVAS_CALLBACK_HOLD: case EVAS_CALLBACK_HOLD:
return EFL_EVENT_TYPE_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: 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; void *event_info;
Evas *evas; Evas *evas;
if (!info->func) return;
evas = evas_object_evas_get(event->object); evas = evas_object_evas_get(event->object);
if (!info->func) return; switch (info->efl_event_type)
switch (info->efl_event_info)
{ {
case EFL_EVENT_TYPE_POINTER: case EFL_EVENT_TYPE_POINTER:
event_info = efl_event_pointer_legacy_info_fill(efl_event_info, info->type, &event_flags); 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); event_info = efl_event_hold_legacy_info_fill(efl_event_info, &event_flags);
break; 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); info->func(info->data, evas, event->object, event->info);
return; return;
@ -277,7 +296,7 @@ evas_event_callback_call(Evas *eo_e, Evas_Callback_Type type, void *event_info)
void void
evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj,
Evas_Callback_Type type, void *event_info, int event_id, 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 */ /* MEM OK */
const Evas_Button_Flags mask = EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK; 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)) 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 (flags & mask)
{ {
if (obj->last_mouse_down_counter < (e->last_mouse_down_counter - 1)) 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; 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); /* This can happen for DEL and FREE which are defined only in here */
} efl_event_desc = _legacy_evas_callback_table(type);
else
{
efl_event_callback_call(eo_obj, _legacy_evas_callback_table(type), event_info);
if (efl_event_desc) CRI("Internal error with events!"); // FIXME
} }
efl_event_callback_call(eo_obj, efl_event_desc, event_info);
if ((type == EVAS_CALLBACK_MOUSE_DOWN) || (type == EVAS_CALLBACK_MOUSE_UP)) 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: nothing_here:
if (!obj->no_propagate) if (!obj->no_propagate)
@ -337,7 +354,7 @@ nothing_here:
(type <= EVAS_CALLBACK_KEY_UP)) (type <= EVAS_CALLBACK_KEY_UP))
{ {
Evas_Object_Protected_Data *smart_parent = efl_data_scope_get(obj->smart.parent, EFL_CANVAS_OBJECT_CLASS); 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); _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->func = func;
cb_info->data = (void *)data; cb_info->data = (void *)data;
cb_info->type = type; 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); 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); 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); child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_DOWN, evt,
event_id, EFL_EVENT_POINTER_DOWN, evt); event_id, EFL_EVENT_POINTER_DOWN);
evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_DOWN, NULL, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_DOWN, evt,
event_id, EFL_EVENT_FINGER_DOWN, evt); event_id, EFL_EVENT_FINGER_DOWN);
if (e->delete_me) break; if (e->delete_me) break;
if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
break; 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); _evas_event_havemap_adjust_f(eo_child, child, &ev->prev, child->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_MOVE; ev->action = EFL_POINTER_ACTION_MOVE;
evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, NULL, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, evt,
event_id, EFL_EVENT_POINTER_MOVE, evt); event_id, EFL_EVENT_POINTER_MOVE);
evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, NULL, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, evt); event_id, EFL_EVENT_FINGER_MOVE);
} }
else else
outs = eina_list_append(outs, eo_child); 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); EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_write);
ev->action = EFL_POINTER_ACTION_OUT; ev->action = EFL_POINTER_ACTION_OUT;
evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, NULL, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, evt,
event_id, EFL_EVENT_POINTER_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; ev->action = EFL_POINTER_ACTION_MOVE;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, evt,
event_id, EFL_EVENT_POINTER_MOVE, evt); event_id, EFL_EVENT_POINTER_MOVE);
evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, NULL, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, evt); event_id, EFL_EVENT_FINGER_MOVE);
} }
else if (child->mouse_in) 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; ev->cur = curpt;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_OUT; ev->action = EFL_POINTER_ACTION_OUT;
evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, NULL, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, evt,
event_id, EFL_EVENT_POINTER_OUT, evt); event_id, EFL_EVENT_POINTER_OUT);
if (e->delete_me) break; 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; ev->cur = curpt;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_IN; ev->action = EFL_POINTER_ACTION_IN;
evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, NULL, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, evt,
event_id2, EFL_EVENT_POINTER_IN, evt); event_id2, EFL_EVENT_POINTER_IN);
if (e->delete_me) break; 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; ev->cur = point;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_UP, evt,
event_id, EFL_EVENT_POINTER_UP, evt); event_id, EFL_EVENT_POINTER_UP);
evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_UP, NULL, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_UP, evt,
event_id, EFL_EVENT_FINGER_UP, evt); event_id, EFL_EVENT_FINGER_UP);
if (e->delete_me) break; if (e->delete_me) break;
if (obj->pointer_mode == if (obj->pointer_mode ==
EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) 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; if (src->delete_me) return;
child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, evt,
event_id, EFL_EVENT_HOLD, evt); event_id, EFL_EVENT_HOLD);
if (src->layer->evas->delete_me) break; 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); child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_WHEEL, evt,
event_id, EFL_EVENT_POINTER_WHEEL, evt); event_id, EFL_EVENT_POINTER_WHEEL);
if (e->delete_me) break; if (e->delete_me) break;
} }
eina_list_free(copy); 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); child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_DOWN, evt,
event_id, EFL_EVENT_FINGER_DOWN, ev->eo); event_id, EFL_EVENT_FINGER_DOWN);
if (e->delete_me) break; if (e->delete_me) break;
} }
eina_list_free(copy); eina_list_free(copy);
@ -836,8 +836,8 @@ _evas_event_source_multi_up_events(Evas_Object_Protected_Data *obj, Evas_Public_
} }
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_UP, evt,
event_id, EFL_EVENT_FINGER_UP, ev->eo); event_id, EFL_EVENT_FINGER_UP);
if (e->delete_me || e->is_frozen) break; if (e->delete_me || e->is_frozen) break;
} }
eina_list_free(copy); 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); child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, ev->eo); event_id, EFL_EVENT_FINGER_MOVE);
if (e->delete_me || e->is_frozen) break; 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_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_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, evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, ev->eo); event_id, EFL_EVENT_FINGER_MOVE);
if (e->delete_me || e->is_frozen) break; 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; child->mouse_in = 1;
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, evt,
event_id, EFL_EVENT_POINTER_IN, evt); event_id, EFL_EVENT_POINTER_IN);
if (e->delete_me || e->is_frozen) break; 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; ev->cur = point;
_evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
event_id, EFL_EVENT_POINTER_OUT, ev->eo); event_id, EFL_EVENT_POINTER_OUT);
if (e->is_frozen) continue; if (e->is_frozen) continue;
} }
eina_list_free(copy); eina_list_free(copy);
@ -1215,6 +1215,7 @@ evas_event_thaw_eval(Evas *eo_e)
static void static void
_canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) _canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
{ {
Efl_Event_Pointer *evt;
Eina_List *l, *copy; Eina_List *l, *copy;
Evas_Object *eo_obj; Evas_Object *eo_obj;
int event_id, b; 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; if (e->is_frozen) return;
e->last_timestamp = ev->timestamp; e->last_timestamp = ev->timestamp;
eo_e = e->evas; eo_e = e->evas;
evt = ev->eo;
event_id = _evas_object_event_new(); 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.x = e->pointer.x;
ev->cur.y = e->pointer.y; ev->cur.y = e->pointer.y;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_DOWN, evt,
event_id, EFL_EVENT_POINTER_DOWN, ev->eo); event_id, EFL_EVENT_POINTER_DOWN);
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, evt,
event_id, EFL_EVENT_FINGER_DOWN, ev->eo); event_id, EFL_EVENT_FINGER_DOWN);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 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 (e->is_frozen || e->delete_me) break;
if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
break; 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.x = e->pointer.x;
ev->cur.y = e->pointer.y; ev->cur.y = e->pointer.y;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
event_id, EFL_EVENT_POINTER_OUT, evt); event_id, EFL_EVENT_POINTER_OUT);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id);
if (e->delete_me) break; 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.x = e->pointer.x;
ev->cur.y = e->pointer.y; ev->cur.y = e->pointer.y;
_evas_event_havemap_adjust_f(eo_obj_itr, obj_itr, &ev->cur, obj_itr->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj_itr, obj_itr, EVAS_CALLBACK_MOUSE_IN, evt,
event_id, EFL_EVENT_POINTER_IN, evt); event_id, EFL_EVENT_POINTER_IN);
if ((obj_itr->proxy->is_proxy) && if ((obj_itr->proxy->is_proxy) &&
(obj_itr->proxy->src_events)) (obj_itr->proxy->src_events))
_evas_event_source_mouse_in_events(eo_obj_itr, eo_e, evt, event_id); _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 static void
_canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) _canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
{ {
Efl_Event_Pointer *evt;
Eina_List *l, *copy; Eina_List *l, *copy;
Evas_Object *eo_obj; Evas_Object *eo_obj;
int event_id, b; 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; if (e->is_frozen) return;
e->last_timestamp = ev->timestamp; e->last_timestamp = ev->timestamp;
eo_e = e->evas; eo_e = e->evas;
evt = ev->eo;
event_id = _evas_object_event_new(); 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.x = e->pointer.x;
ev->cur.y = e->pointer.y; ev->cur.y = e->pointer.y;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_UP, evt,
event_id, EFL_EVENT_POINTER_UP, ev->eo); event_id, EFL_EVENT_POINTER_UP);
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, evt,
event_id, EFL_EVENT_FINGER_UP, ev->eo); event_id, EFL_EVENT_FINGER_UP);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 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; 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); _evas_post_event_callback_call(eo_e, e);
if (e->pointer.mouse_grabbed == 0) if (e->pointer.mouse_grabbed == 0)
_post_up_handle(e, ev->eo); _post_up_handle(e, evt);
if (e->pointer.mouse_grabbed < 0) 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.x = e->pointer.x;
ev->cur.y = e->pointer.y; ev->cur.y = e->pointer.y;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_WHEEL, evt,
event_id, EFL_EVENT_POINTER_WHEEL, evt); event_id, EFL_EVENT_POINTER_WHEEL);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_wheel_events(eo_obj, eo_e, evt, event_id); _evas_event_source_wheel_events(eo_obj, eo_e, evt, event_id);
if (e->delete_me || e->is_frozen) break; 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; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt,
event_id, EFL_EVENT_POINTER_MOVE, evt); event_id, EFL_EVENT_POINTER_MOVE);
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, evt); event_id, EFL_EVENT_FINGER_MOVE);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); _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); e->pointer.object.in = eina_list_remove(e->pointer.object.in, eo_obj);
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
event_id, EFL_EVENT_POINTER_OUT, evt); event_id, EFL_EVENT_POINTER_OUT);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); _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; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_MOVE; ev->action = EFL_POINTER_ACTION_MOVE;
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt,
event_id, EFL_EVENT_POINTER_MOVE, evt); event_id, EFL_EVENT_POINTER_MOVE);
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, evt); event_id, EFL_EVENT_FINGER_MOVE);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); _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; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_OUT; ev->action = EFL_POINTER_ACTION_OUT;
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
event_id, EFL_EVENT_POINTER_OUT, evt); event_id, EFL_EVENT_POINTER_OUT);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id);
if (e->delete_me) break; 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; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_IN; ev->action = EFL_POINTER_ACTION_IN;
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt,
event_id, EFL_EVENT_POINTER_IN, evt); event_id, EFL_EVENT_POINTER_IN);
if ((obj->proxy->is_proxy) && if ((obj->proxy->is_proxy) &&
(obj->proxy->src_events)) (obj->proxy->src_events))
_evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id);
@ -1973,10 +1977,10 @@ nogrep:
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_MOVE; ev->action = EFL_POINTER_ACTION_MOVE;
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt,
event_id, EFL_EVENT_POINTER_MOVE, evt); event_id, EFL_EVENT_POINTER_MOVE);
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, evt); event_id, EFL_EVENT_FINGER_MOVE);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id);
} }
@ -1990,8 +1994,8 @@ nogrep:
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_OUT; ev->action = EFL_POINTER_ACTION_OUT;
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
event_id, EFL_EVENT_POINTER_OUT, evt); event_id, EFL_EVENT_POINTER_OUT);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id);
} }
@ -2015,8 +2019,8 @@ nogrep:
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
ev->action = EFL_POINTER_ACTION_IN; ev->action = EFL_POINTER_ACTION_IN;
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt,
event_id, EFL_EVENT_POINTER_IN, evt); event_id, EFL_EVENT_POINTER_IN);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id);
if (e->delete_me) break; 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) _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); Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
Efl_Event_Pointer *evt;
Eina_List *ins; Eina_List *ins;
Eina_List *l; Eina_List *l;
Evas_Object *eo_obj; 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; e->last_timestamp = ev->timestamp;
if (e->pointer.mouse_grabbed != 0) return; if (e->pointer.mouse_grabbed != 0) return;
evt = ev->eo;
ev->action = EFL_POINTER_ACTION_IN; ev->action = EFL_POINTER_ACTION_IN;
ev->pressed_buttons = e->pointer.button; ev->pressed_buttons = e->pointer.button;
ev->cur.x = e->pointer.x; 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.x = e->pointer.x;
ev->cur.y = e->pointer.y; ev->cur.y = e->pointer.y;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt,
event_id, EFL_EVENT_POINTER_IN, ev->eo); event_id, EFL_EVENT_POINTER_IN);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 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; 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) _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); Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
Efl_Event_Pointer *evt;
Eina_List *l, *copy; Eina_List *l, *copy;
Evas_Object *eo_obj; Evas_Object *eo_obj;
int event_id; 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(); event_id = _evas_object_event_new();
evt = ev->eo;
ev->action = EFL_POINTER_ACTION_OUT; ev->action = EFL_POINTER_ACTION_OUT;
ev->pressed_buttons = e->pointer.button; ev->pressed_buttons = e->pointer.button;
ev->cur.x = e->pointer.x; 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.x = e->pointer.x;
ev->cur.y = e->pointer.y; ev->cur.y = e->pointer.y;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
event_id, EFL_EVENT_POINTER_OUT, ev->eo); event_id, EFL_EVENT_POINTER_OUT);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 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; if (e->delete_me || e->is_frozen) break;
} }
obj->mouse_grabbed = 0; obj->mouse_grabbed = 0;
@ -2225,6 +2233,7 @@ evas_event_feed_mouse_out(Eo *eo_e, unsigned int timestamp, const void *data)
static void static void
_canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
{ {
Efl_Event_Pointer *evt;
Eina_List *l, *copy; Eina_List *l, *copy;
Evas_Object *eo_obj; Evas_Object *eo_obj;
Eina_Vector2 point; 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(); event_id = _evas_object_event_new();
point = ev->cur; point = ev->cur;
evt = ev->eo;
ev->action = EFL_POINTER_ACTION_DOWN; ev->action = EFL_POINTER_ACTION_DOWN;
ev->modifiers = &(e->modifiers); ev->modifiers = &(e->modifiers);
ev->locks = &(e->locks); 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); Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
ev->cur = point; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, evt,
event_id, EFL_EVENT_FINGER_DOWN, ev->eo); event_id, EFL_EVENT_FINGER_DOWN);
if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) 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; if (e->delete_me || e->is_frozen) break;
} }
eina_list_free(copy); eina_list_free(copy);
@ -2291,6 +2301,7 @@ _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
static void static void
_canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) _canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
{ {
Efl_Event_Pointer *evt;
Eina_List *l, *copy; Eina_List *l, *copy;
Evas_Object *eo_obj; Evas_Object *eo_obj;
Eina_Vector2 point; 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(); event_id = _evas_object_event_new();
point = ev->cur; point = ev->cur;
evt = ev->eo;
ev->action = EFL_POINTER_ACTION_UP; ev->action = EFL_POINTER_ACTION_UP;
ev->modifiers = &(e->modifiers); ev->modifiers = &(e->modifiers);
ev->locks = &(e->locks); 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--; obj->mouse_grabbed--;
e->pointer.mouse_grabbed--; e->pointer.mouse_grabbed--;
} }
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, evt,
event_id, EFL_EVENT_FINGER_UP, ev->eo); event_id, EFL_EVENT_FINGER_UP);
if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) 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; if (e->delete_me || e->is_frozen) break;
} }
eina_list_free(copy); 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); _evas_post_event_callback_call(eo_e, e);
/* remove released touch point from the touch point list */ /* remove released touch point from the touch point list */
_evas_touch_point_remove(eo_e, ev->tool); _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 static void
_canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) _canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
{ {
Efl_Event_Pointer *evt;
Eina_List *l, *copy; Eina_List *l, *copy;
Evas_Object *eo_obj; Evas_Object *eo_obj;
Eina_Vector2 point; 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; if ((!e->pointer.inside) && (e->pointer.mouse_grabbed == 0)) return;
evt = ev->eo;
ev->cur.x = e->pointer.x; ev->cur.x = e->pointer.x;
ev->cur.y = e->pointer.y; ev->cur.y = e->pointer.y;
ev->modifiers = &(e->modifiers); 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; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, ev->eo); event_id, EFL_EVENT_FINGER_MOVE);
if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) 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; 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; ev->cur = point;
_evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); _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, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
event_id, EFL_EVENT_FINGER_MOVE, ev->eo); event_id, EFL_EVENT_FINGER_MOVE);
if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) 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; 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) _canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev)
{ {
Eina_Bool exclusive = EINA_FALSE; Eina_Bool exclusive = EINA_FALSE;
Efl_Event_Pointer *evt;
int event_id = 0; int event_id = 0;
if (!e || !ev) return; 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(); event_id = _evas_object_event_new();
evt = ev->eo;
ev->modifiers = &(e->modifiers); ev->modifiers = &(e->modifiers);
ev->locks = &(e->locks); ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags; 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 && if (!e->is_frozen &&
!evas_event_freezes_through(g->object, object_obj)) !evas_event_freezes_through(g->object, object_obj))
{ {
evas_object_event_callback_call(g->object, object_obj, EVAS_CALLBACK_KEY_DOWN, NULL, evas_object_event_callback_call(g->object, object_obj, EVAS_CALLBACK_KEY_DOWN, evt,
event_id, EFL_EVENT_KEY_DOWN, ev->eo); event_id, EFL_EVENT_KEY_DOWN);
} }
if (g->exclusive) exclusive = EINA_TRUE; 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); 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)) 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, evas_object_event_callback_call(e->focused, focused_obj, EVAS_CALLBACK_KEY_DOWN, evt,
event_id, EFL_EVENT_KEY_DOWN, ev->eo); event_id, EFL_EVENT_KEY_DOWN);
} }
} }
_evas_post_event_callback_call(e->evas, e); _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) _canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev)
{ {
Eina_Bool exclusive = EINA_FALSE; Eina_Bool exclusive = EINA_FALSE;
Efl_Event_Pointer *evt;
int event_id = 0; int event_id = 0;
if (!e || !ev) return; 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(); event_id = _evas_object_event_new();
evt = ev->eo;
ev->modifiers = &(e->modifiers); ev->modifiers = &(e->modifiers);
ev->locks = &(e->locks); ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags; 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_event_freezes_through(g->object, object_obj))
{ {
evas_object_event_callback_call evas_object_event_callback_call
(g->object, object_obj, EVAS_CALLBACK_KEY_UP, NULL, (g->object, object_obj, EVAS_CALLBACK_KEY_UP, evt,
event_id, EFL_EVENT_KEY_UP, ev->eo); event_id, EFL_EVENT_KEY_UP);
} }
if (g->exclusive) exclusive = EINA_TRUE; 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)) if (!e->is_frozen && !evas_event_freezes_through(e->focused, focused_obj))
{ {
evas_object_event_callback_call evas_object_event_callback_call
(e->focused, focused_obj, EVAS_CALLBACK_KEY_UP, NULL, (e->focused, focused_obj, EVAS_CALLBACK_KEY_UP, evt,
event_id, EFL_EVENT_KEY_UP, ev->eo); event_id, EFL_EVENT_KEY_UP);
} }
} }
_evas_post_event_callback_call(e->evas, e); _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); Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
if ( !evas_event_freezes_through(eo_obj, obj)) if ( !evas_event_freezes_through(eo_obj, obj))
{ {
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, NULL, evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, evt,
event_id, EFL_EVENT_HOLD, evt); event_id, EFL_EVENT_HOLD);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
_evas_event_source_hold_events(eo_obj, event_id, evt); _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 void
_canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) _canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
{ {
Efl_Event_Pointer *evt;
Eina_List *l, *copy; Eina_List *l, *copy;
Evas_Object *eo_obj; Evas_Object *eo_obj;
int event_id = 0; 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; ev->action = EFL_POINTER_ACTION_AXIS;
event_id = _evas_object_event_new(); event_id = _evas_object_event_new();
evt = ev->eo;
if (ev->device) efl_ref(ev->device); 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)) if (!evas_event_freezes_through(eo_obj, obj))
{ {
evas_object_event_callback_call(eo_obj, obj, evas_object_event_callback_call(eo_obj, obj,
EVAS_CALLBACK_AXIS_UPDATE, NULL, EVAS_CALLBACK_AXIS_UPDATE, evt,
event_id, EFL_EVENT_POINTER_AXIS, ev->eo); event_id, EFL_EVENT_POINTER_AXIS);
if (e->delete_me || e->is_frozen) break; 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->data = (void *) data;
ev->timestamp = timestamp; ev->timestamp = timestamp;
ev->action = EFL_POINTER_ACTION_AXIS; ev->action = EFL_POINTER_ACTION_AXIS;
ev->device = _evas_device_top_get(eo_e); // FIXME
ev->tool = toolid; ev->tool = toolid;
// see also ecore_evas.c // 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); _canvas_event_feed_axis_update_internal(e, ev);
efl_del(evt); 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; if (obj->layer->evas->focused) goto end;
obj->focused = 1; obj->focused = 1;
obj->layer->evas->focused = eo_obj; 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_event_callback_call(obj->layer->evas->evas,
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, eo_obj); 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->focused = 0;
obj->layer->evas->focused = NULL; 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_event_callback_call(obj->layer->evas->evas,
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, eo_obj); 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_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); _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_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); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
} }
void void
evas_object_inform_call_move(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) 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); _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_inform_call_resize(Evas_Object *eo_obj)
{ {
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 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); _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_inform_call_restack(Evas_Object *eo_obj)
{ {
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 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); _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_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_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); _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_check(eo_obj);
_evas_object_image_preloading_set(eo_obj, 0); _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); _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_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_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); _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_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_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); _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; obj->focused = EINA_FALSE;
if ((obj->layer) && (obj->layer->evas)) if ((obj->layer) && (obj->layer->evas))
obj->layer->evas->focused = NULL; 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)) if ((obj->layer) && (obj->layer->evas))
_evas_post_event_callback_call(obj->layer->evas->evas, 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)) if ((obj->layer) && (obj->layer->evas))
_evas_post_event_callback_call(obj->layer->evas->evas, 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)) 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); evas_object_map_set(eo_obj, NULL);
if (obj->is_smart) evas_object_smart_del(eo_obj); 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)) if ((obj->layer) && (obj->layer->evas))
_evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
evas_object_smart_cleanup(eo_obj); 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_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_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_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); 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_free(int mem_required);
int evas_mem_degrade(int mem_required); int evas_mem_degrade(int mem_required);