forked from enlightenment/efl
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:
parent
7b25619213
commit
443aa91d53
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue