summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-08-25 16:03:45 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-08-26 10:18:01 +0900
commit443aa91d5352810c24403281dffad96f0472b368 (patch)
treebad69791b20c6cf6ef92f7e003a727f3a11163b1
parent7b25619213ead0d39001ce57320075b69fccdec2 (diff)
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.
-rw-r--r--src/lib/evas/canvas/evas_callbacks.c65
-rw-r--r--src/lib/evas/canvas/evas_events.c241
-rw-r--r--src/lib/evas/canvas/evas_focus.c4
-rw-r--r--src/lib/evas/canvas/evas_object_inform.c18
-rw-r--r--src/lib/evas/canvas/evas_object_main.c6
-rw-r--r--src/lib/evas/include/evas_private.h2
6 files changed, 188 insertions, 148 deletions
diff --git a/src/lib/evas/canvas/evas_callbacks.c b/src/lib/evas/canvas/evas_callbacks.c
index af3f51d324..81a1e6dd4a 100644
--- a/src/lib/evas/canvas/evas_callbacks.c
+++ b/src/lib/evas/canvas/evas_callbacks.c
@@ -87,13 +87,22 @@ _legacy_evas_callback_type(const Efl_Event_Description *desc)
87 return EVAS_CALLBACK_LAST; 87 return EVAS_CALLBACK_LAST;
88} 88}
89 89
90typedef enum {
91 EFL_EVENT_TYPE_NULL,
92 EFL_EVENT_TYPE_OBJECT,
93 EFL_EVENT_TYPE_STRUCT,
94 EFL_EVENT_TYPE_POINTER,
95 EFL_EVENT_TYPE_KEY,
96 EFL_EVENT_TYPE_HOLD
97} Efl_Event_Info_Type;
98
90typedef struct 99typedef struct
91{ 100{
92 EINA_INLIST; 101 EINA_INLIST;
93 Evas_Object_Event_Cb func; 102 Evas_Object_Event_Cb func;
94 void *data; 103 void *data;
95 Evas_Callback_Type type; 104 Evas_Callback_Type type;
96 int efl_event_info; // for key, pointer and hold 105 Efl_Event_Info_Type efl_event_type;
97} _eo_evas_object_cb_info; 106} _eo_evas_object_cb_info;
98 107
99typedef struct 108typedef struct
@@ -104,13 +113,8 @@ typedef struct
104 Evas_Callback_Type type; 113 Evas_Callback_Type type;
105} _eo_evas_cb_info; 114} _eo_evas_cb_info;
106 115
107#define EFL_EVENT_TYPE_LEGACY 0
108#define EFL_EVENT_TYPE_POINTER 1
109#define EFL_EVENT_TYPE_KEY 2
110#define EFL_EVENT_TYPE_HOLD 3
111
112static int 116static int
113_evas_event_efl_event_info_exists(Evas_Callback_Type type) 117_evas_event_efl_event_info_type(Evas_Callback_Type type)
114{ 118{
115 switch (type) 119 switch (type)
116 { 120 {
@@ -125,13 +129,26 @@ _evas_event_efl_event_info_exists(Evas_Callback_Type type)
125 case EVAS_CALLBACK_MULTI_MOVE: 129 case EVAS_CALLBACK_MULTI_MOVE:
126 case EVAS_CALLBACK_AXIS_UPDATE: 130 case EVAS_CALLBACK_AXIS_UPDATE:
127 return EFL_EVENT_TYPE_POINTER; 131 return EFL_EVENT_TYPE_POINTER;
132
128 case EVAS_CALLBACK_KEY_DOWN: 133 case EVAS_CALLBACK_KEY_DOWN:
129 case EVAS_CALLBACK_KEY_UP: 134 case EVAS_CALLBACK_KEY_UP:
130 return EFL_EVENT_TYPE_KEY; 135 return EFL_EVENT_TYPE_KEY;
136
131 case EVAS_CALLBACK_HOLD: 137 case EVAS_CALLBACK_HOLD:
132 return EFL_EVENT_TYPE_HOLD; 138 return EFL_EVENT_TYPE_HOLD;
139
140 case EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN:
141 case EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT: /* Efl.Canvas.Object */
142 return EFL_EVENT_TYPE_OBJECT;
143
144 case EVAS_CALLBACK_RENDER_POST: /* Efl_Gfx_Event_Render_Post */
145 return EFL_EVENT_TYPE_STRUCT;
146
147 case EVAS_CALLBACK_DEVICE_CHANGED: /* Efl.Input.Device */
148 return EFL_EVENT_TYPE_OBJECT;
149
133 default: 150 default:
134 return EFL_EVENT_TYPE_LEGACY; 151 return EFL_EVENT_TYPE_NULL;
135 } 152 }
136} 153}
137 154
@@ -144,10 +161,10 @@ _eo_evas_object_cb(void *data, const Eo_Event *event)
144 void *event_info; 161 void *event_info;
145 Evas *evas; 162 Evas *evas;
146 163
164 if (!info->func) return;
147 evas = evas_object_evas_get(event->object); 165 evas = evas_object_evas_get(event->object);
148 166
149 if (!info->func) return; 167 switch (info->efl_event_type)
150 switch (info->efl_event_info)
151 { 168 {
152 case EFL_EVENT_TYPE_POINTER: 169 case EFL_EVENT_TYPE_POINTER:
153 event_info = efl_event_pointer_legacy_info_fill(efl_event_info, info->type, &event_flags); 170 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)
161 event_info = efl_event_hold_legacy_info_fill(efl_event_info, &event_flags); 178 event_info = efl_event_hold_legacy_info_fill(efl_event_info, &event_flags);
162 break; 179 break;
163 180
164 case EFL_EVENT_TYPE_LEGACY: 181 case EFL_EVENT_TYPE_NULL:
182 case EFL_EVENT_TYPE_STRUCT:
183 case EFL_EVENT_TYPE_OBJECT:
165 info->func(info->data, evas, event->object, event->info); 184 info->func(info->data, evas, event->object, event->info);
166 return; 185 return;
167 186
@@ -277,7 +296,7 @@ evas_event_callback_call(Evas *eo_e, Evas_Callback_Type type, void *event_info)
277void 296void
278evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, 297evas_object_event_callback_call(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj,
279 Evas_Callback_Type type, void *event_info, int event_id, 298 Evas_Callback_Type type, void *event_info, int event_id,
280 const Efl_Event_Description *efl_event_desc, Efl_Event *efl_event_info) 299 const Efl_Event_Description *efl_event_desc)
281{ 300{
282 /* MEM OK */ 301 /* MEM OK */
283 const Evas_Button_Flags mask = EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK; 302 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
308 327
309 if ((type == EVAS_CALLBACK_MOUSE_DOWN) || (type == EVAS_CALLBACK_MOUSE_UP)) 328 if ((type == EVAS_CALLBACK_MOUSE_DOWN) || (type == EVAS_CALLBACK_MOUSE_UP))
310 { 329 {
311 flags = efl_event_pointer_button_flags_get(efl_event_info); 330 flags = efl_event_pointer_button_flags_get(event_info);
312 if (flags & mask) 331 if (flags & mask)
313 { 332 {
314 if (obj->last_mouse_down_counter < (e->last_mouse_down_counter - 1)) 333 if (obj->last_mouse_down_counter < (e->last_mouse_down_counter - 1))
315 efl_event_pointer_button_flags_set(efl_event_info, flags & ~mask); 334 efl_event_pointer_button_flags_set(event_info, flags & ~mask);
316 } 335 }
317 obj->last_mouse_down_counter = e->last_mouse_down_counter; 336 obj->last_mouse_down_counter = e->last_mouse_down_counter;
318 } 337 }
319 338
320 if (_evas_event_efl_event_info_exists(type)) 339 if (!efl_event_desc)
321 { 340 {
322 efl_event_callback_call(eo_obj, efl_event_desc, efl_event_info); 341 /* This can happen for DEL and FREE which are defined only in here */
323 } 342 efl_event_desc = _legacy_evas_callback_table(type);
324 else
325 {
326 efl_event_callback_call(eo_obj, _legacy_evas_callback_table(type), event_info);
327 if (efl_event_desc) CRI("Internal error with events!"); // FIXME
328 } 343 }
329 344
345 efl_event_callback_call(eo_obj, efl_event_desc, event_info);
346
330 if ((type == EVAS_CALLBACK_MOUSE_DOWN) || (type == EVAS_CALLBACK_MOUSE_UP)) 347 if ((type == EVAS_CALLBACK_MOUSE_DOWN) || (type == EVAS_CALLBACK_MOUSE_UP))
331 efl_event_pointer_button_flags_set(efl_event_info, flags); 348 efl_event_pointer_button_flags_set(event_info, flags);
332 349
333nothing_here: 350nothing_here:
334 if (!obj->no_propagate) 351 if (!obj->no_propagate)
@@ -337,7 +354,7 @@ nothing_here:
337 (type <= EVAS_CALLBACK_KEY_UP)) 354 (type <= EVAS_CALLBACK_KEY_UP))
338 { 355 {
339 Evas_Object_Protected_Data *smart_parent = efl_data_scope_get(obj->smart.parent, EFL_CANVAS_OBJECT_CLASS); 356 Evas_Object_Protected_Data *smart_parent = efl_data_scope_get(obj->smart.parent, EFL_CANVAS_OBJECT_CLASS);
340 evas_object_event_callback_call(obj->smart.parent, smart_parent, type, event_info, event_id, efl_event_desc, efl_event_info); 357 evas_object_event_callback_call(obj->smart.parent, smart_parent, type, event_info, event_id, efl_event_desc);
341 } 358 }
342 } 359 }
343 _evas_unwalk(e); 360 _evas_unwalk(e);
@@ -366,7 +383,7 @@ evas_object_event_callback_priority_add(Evas_Object *eo_obj, Evas_Callback_Type
366 cb_info->func = func; 383 cb_info->func = func;
367 cb_info->data = (void *)data; 384 cb_info->data = (void *)data;
368 cb_info->type = type; 385 cb_info->type = type;
369 cb_info->efl_event_info = _evas_event_efl_event_info_exists(type); 386 cb_info->efl_event_type = _evas_event_efl_event_info_type(type);
370 387
371 const Efl_Event_Description *desc = _legacy_evas_callback_table(type); 388 const Efl_Event_Description *desc = _legacy_evas_callback_table(type);
372 efl_event_callback_priority_add(eo_obj, desc, priority, _eo_evas_object_cb, cb_info); 389 efl_event_callback_priority_add(eo_obj, desc, priority, _eo_evas_object_cb, cb_info);
diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c
index 1dd71cc964..f94566b8fe 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -439,10 +439,10 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e,
439 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); 439 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
440 ev->cur = point; 440 ev->cur = point;
441 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 441 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
442 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_DOWN, NULL, 442 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_DOWN, evt,
443 event_id, EFL_EVENT_POINTER_DOWN, evt); 443 event_id, EFL_EVENT_POINTER_DOWN);
444 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_DOWN, NULL, 444 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_DOWN, evt,
445 event_id, EFL_EVENT_FINGER_DOWN, evt); 445 event_id, EFL_EVENT_FINGER_DOWN);
446 if (e->delete_me) break; 446 if (e->delete_me) break;
447 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) 447 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
448 break; 448 break;
@@ -503,10 +503,10 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e,
503 _evas_event_havemap_adjust_f(eo_child, child, &ev->prev, child->mouse_grabbed); 503 _evas_event_havemap_adjust_f(eo_child, child, &ev->prev, child->mouse_grabbed);
504 504
505 ev->action = EFL_POINTER_ACTION_MOVE; 505 ev->action = EFL_POINTER_ACTION_MOVE;
506 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, NULL, 506 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, evt,
507 event_id, EFL_EVENT_POINTER_MOVE, evt); 507 event_id, EFL_EVENT_POINTER_MOVE);
508 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, NULL, 508 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, evt,
509 event_id, EFL_EVENT_FINGER_MOVE, evt); 509 event_id, EFL_EVENT_FINGER_MOVE);
510 } 510 }
511 else 511 else
512 outs = eina_list_append(outs, eo_child); 512 outs = eina_list_append(outs, eo_child);
@@ -530,8 +530,8 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e,
530 EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_write); 530 EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_write);
531 531
532 ev->action = EFL_POINTER_ACTION_OUT; 532 ev->action = EFL_POINTER_ACTION_OUT;
533 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, NULL, 533 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, evt,
534 event_id, EFL_EVENT_POINTER_OUT, evt); 534 event_id, EFL_EVENT_POINTER_OUT);
535 } 535 }
536 } 536 }
537 } 537 }
@@ -567,10 +567,10 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e,
567 { 567 {
568 ev->action = EFL_POINTER_ACTION_MOVE; 568 ev->action = EFL_POINTER_ACTION_MOVE;
569 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 569 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
570 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, NULL, 570 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_MOVE, evt,
571 event_id, EFL_EVENT_POINTER_MOVE, evt); 571 event_id, EFL_EVENT_POINTER_MOVE);
572 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, NULL, 572 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_MOVE, evt,
573 event_id, EFL_EVENT_FINGER_MOVE, evt); 573 event_id, EFL_EVENT_FINGER_MOVE);
574 } 574 }
575 else if (child->mouse_in) 575 else if (child->mouse_in)
576 { 576 {
@@ -579,8 +579,8 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e,
579 ev->cur = curpt; 579 ev->cur = curpt;
580 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 580 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
581 ev->action = EFL_POINTER_ACTION_OUT; 581 ev->action = EFL_POINTER_ACTION_OUT;
582 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, NULL, 582 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_OUT, evt,
583 event_id, EFL_EVENT_POINTER_OUT, evt); 583 event_id, EFL_EVENT_POINTER_OUT);
584 if (e->delete_me) break; 584 if (e->delete_me) break;
585 585
586 } 586 }
@@ -601,8 +601,8 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e,
601 ev->cur = curpt; 601 ev->cur = curpt;
602 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 602 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
603 ev->action = EFL_POINTER_ACTION_IN; 603 ev->action = EFL_POINTER_ACTION_IN;
604 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, NULL, 604 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, evt,
605 event_id2, EFL_EVENT_POINTER_IN, evt); 605 event_id2, EFL_EVENT_POINTER_IN);
606 if (e->delete_me) break; 606 if (e->delete_me) break;
607 } 607 }
608 } 608 }
@@ -667,10 +667,10 @@ _evas_event_source_mouse_up_events(Evas_Object *eo_obj, Evas *eo_e,
667 667
668 ev->cur = point; 668 ev->cur = point;
669 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 669 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
670 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_UP, NULL, 670 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_UP, evt,
671 event_id, EFL_EVENT_POINTER_UP, evt); 671 event_id, EFL_EVENT_POINTER_UP);
672 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_UP, NULL, 672 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MULTI_UP, evt,
673 event_id, EFL_EVENT_FINGER_UP, evt); 673 event_id, EFL_EVENT_FINGER_UP);
674 if (e->delete_me) break; 674 if (e->delete_me) break;
675 if (obj->pointer_mode == 675 if (obj->pointer_mode ==
676 EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) 676 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
700 { 700 {
701 if (src->delete_me) return; 701 if (src->delete_me) return;
702 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); 702 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
703 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, NULL, 703 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, evt,
704 event_id, EFL_EVENT_HOLD, evt); 704 event_id, EFL_EVENT_HOLD);
705 if (src->layer->evas->delete_me) break; 705 if (src->layer->evas->delete_me) break;
706 } 706 }
707} 707}
@@ -738,8 +738,8 @@ _evas_event_source_wheel_events(Evas_Object *eo_obj, Evas *eo_e,
738 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); 738 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
739 ev->cur = point; 739 ev->cur = point;
740 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 740 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
741 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_WHEEL, NULL, 741 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_WHEEL, evt,
742 event_id, EFL_EVENT_POINTER_WHEEL, evt); 742 event_id, EFL_EVENT_POINTER_WHEEL);
743 if (e->delete_me) break; 743 if (e->delete_me) break;
744 } 744 }
745 eina_list_free(copy); 745 eina_list_free(copy);
@@ -790,8 +790,8 @@ _evas_event_source_multi_down_events(Evas_Object_Protected_Data *obj, Evas_Publi
790 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); 790 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
791 ev->cur = point; 791 ev->cur = point;
792 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 792 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
793 evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_DOWN, NULL, 793 evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_DOWN, evt,
794 event_id, EFL_EVENT_FINGER_DOWN, ev->eo); 794 event_id, EFL_EVENT_FINGER_DOWN);
795 if (e->delete_me) break; 795 if (e->delete_me) break;
796 } 796 }
797 eina_list_free(copy); 797 eina_list_free(copy);
@@ -836,8 +836,8 @@ _evas_event_source_multi_up_events(Evas_Object_Protected_Data *obj, Evas_Public_
836 } 836 }
837 ev->cur = point; 837 ev->cur = point;
838 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 838 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
839 evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_UP, NULL, 839 evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_UP, evt,
840 event_id, EFL_EVENT_FINGER_UP, ev->eo); 840 event_id, EFL_EVENT_FINGER_UP);
841 if (e->delete_me || e->is_frozen) break; 841 if (e->delete_me || e->is_frozen) break;
842 } 842 }
843 eina_list_free(copy); 843 eina_list_free(copy);
@@ -888,8 +888,8 @@ _evas_event_source_multi_move_events(Evas_Object_Protected_Data *obj, Evas_Publi
888 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); 888 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
889 ev->cur = point; 889 ev->cur = point;
890 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 890 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
891 evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, 891 evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
892 event_id, EFL_EVENT_FINGER_MOVE, ev->eo); 892 event_id, EFL_EVENT_FINGER_MOVE);
893 if (e->delete_me || e->is_frozen) break; 893 if (e->delete_me || e->is_frozen) break;
894 } 894 }
895 } 895 }
@@ -926,8 +926,8 @@ _evas_event_source_multi_move_events(Evas_Object_Protected_Data *obj, Evas_Publi
926 evas_object_is_inside(eo_child, child, ev->cur.x, ev->cur.y))) 926 evas_object_is_inside(eo_child, child, ev->cur.x, ev->cur.y)))
927 { 927 {
928 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 928 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
929 evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, 929 evas_object_event_callback_call(obj->object, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
930 event_id, EFL_EVENT_FINGER_MOVE, ev->eo); 930 event_id, EFL_EVENT_FINGER_MOVE);
931 if (e->delete_me || e->is_frozen) break; 931 if (e->delete_me || e->is_frozen) break;
932 } 932 }
933 } 933 }
@@ -993,8 +993,8 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e,
993 child->mouse_in = 1; 993 child->mouse_in = 1;
994 ev->cur = point; 994 ev->cur = point;
995 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 995 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
996 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, NULL, 996 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_IN, evt,
997 event_id, EFL_EVENT_POINTER_IN, evt); 997 event_id, EFL_EVENT_POINTER_IN);
998 if (e->delete_me || e->is_frozen) break; 998 if (e->delete_me || e->is_frozen) break;
999 } 999 }
1000 } 1000 }
@@ -1045,8 +1045,8 @@ _evas_event_source_mouse_out_events(Evas_Object *eo_obj, Evas *eo_e,
1045 1045
1046 ev->cur = point; 1046 ev->cur = point;
1047 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed); 1047 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
1048 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, 1048 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
1049 event_id, EFL_EVENT_POINTER_OUT, ev->eo); 1049 event_id, EFL_EVENT_POINTER_OUT);
1050 if (e->is_frozen) continue; 1050 if (e->is_frozen) continue;
1051 } 1051 }
1052 eina_list_free(copy); 1052 eina_list_free(copy);
@@ -1215,6 +1215,7 @@ evas_event_thaw_eval(Evas *eo_e)
1215static void 1215static void
1216_canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) 1216_canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
1217{ 1217{
1218 Efl_Event_Pointer *evt;
1218 Eina_List *l, *copy; 1219 Eina_List *l, *copy;
1219 Evas_Object *eo_obj; 1220 Evas_Object *eo_obj;
1220 int event_id, b; 1221 int event_id, b;
@@ -1234,6 +1235,7 @@ _canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
1234 if (e->is_frozen) return; 1235 if (e->is_frozen) return;
1235 e->last_timestamp = ev->timestamp; 1236 e->last_timestamp = ev->timestamp;
1236 eo_e = e->evas; 1237 eo_e = e->evas;
1238 evt = ev->eo;
1237 1239
1238 event_id = _evas_object_event_new(); 1240 event_id = _evas_object_event_new();
1239 1241
@@ -1287,12 +1289,12 @@ _canvas_event_feed_mouse_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
1287 ev->cur.x = e->pointer.x; 1289 ev->cur.x = e->pointer.x;
1288 ev->cur.y = e->pointer.y; 1290 ev->cur.y = e->pointer.y;
1289 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1291 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1290 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_DOWN, NULL, 1292 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_DOWN, evt,
1291 event_id, EFL_EVENT_POINTER_DOWN, ev->eo); 1293 event_id, EFL_EVENT_POINTER_DOWN);
1292 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, NULL, 1294 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, evt,
1293 event_id, EFL_EVENT_FINGER_DOWN, ev->eo); 1295 event_id, EFL_EVENT_FINGER_DOWN);
1294 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1296 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1295 _evas_event_source_mouse_down_events(eo_obj, eo_e, ev->eo, event_id); 1297 _evas_event_source_mouse_down_events(eo_obj, eo_e, evt, event_id);
1296 if (e->is_frozen || e->delete_me) break; 1298 if (e->is_frozen || e->delete_me) break;
1297 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) 1299 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
1298 break; 1300 break;
@@ -1344,8 +1346,8 @@ _post_up_handle(Evas_Public_Data *e, Efl_Event_Pointer *parent_ev)
1344 ev->cur.x = e->pointer.x; 1346 ev->cur.x = e->pointer.x;
1345 ev->cur.y = e->pointer.y; 1347 ev->cur.y = e->pointer.y;
1346 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1348 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1347 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, 1349 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
1348 event_id, EFL_EVENT_POINTER_OUT, evt); 1350 event_id, EFL_EVENT_POINTER_OUT);
1349 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1351 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1350 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); 1352 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id);
1351 if (e->delete_me) break; 1353 if (e->delete_me) break;
@@ -1374,8 +1376,8 @@ _post_up_handle(Evas_Public_Data *e, Efl_Event_Pointer *parent_ev)
1374 ev->cur.x = e->pointer.x; 1376 ev->cur.x = e->pointer.x;
1375 ev->cur.y = e->pointer.y; 1377 ev->cur.y = e->pointer.y;
1376 _evas_event_havemap_adjust_f(eo_obj_itr, obj_itr, &ev->cur, obj_itr->mouse_grabbed); 1378 _evas_event_havemap_adjust_f(eo_obj_itr, obj_itr, &ev->cur, obj_itr->mouse_grabbed);
1377 evas_object_event_callback_call(eo_obj_itr, obj_itr, EVAS_CALLBACK_MOUSE_IN, NULL, 1379 evas_object_event_callback_call(eo_obj_itr, obj_itr, EVAS_CALLBACK_MOUSE_IN, evt,
1378 event_id, EFL_EVENT_POINTER_IN, evt); 1380 event_id, EFL_EVENT_POINTER_IN);
1379 if ((obj_itr->proxy->is_proxy) && 1381 if ((obj_itr->proxy->is_proxy) &&
1380 (obj_itr->proxy->src_events)) 1382 (obj_itr->proxy->src_events))
1381 _evas_event_source_mouse_in_events(eo_obj_itr, eo_e, evt, event_id); 1383 _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)
1413static void 1415static void
1414_canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) 1416_canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
1415{ 1417{
1418 Efl_Event_Pointer *evt;
1416 Eina_List *l, *copy; 1419 Eina_List *l, *copy;
1417 Evas_Object *eo_obj; 1420 Evas_Object *eo_obj;
1418 int event_id, b; 1421 int event_id, b;
@@ -1432,6 +1435,7 @@ _canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data
1432 if (e->is_frozen) return; 1435 if (e->is_frozen) return;
1433 e->last_timestamp = ev->timestamp; 1436 e->last_timestamp = ev->timestamp;
1434 eo_e = e->evas; 1437 eo_e = e->evas;
1438 evt = ev->eo;
1435 1439
1436 event_id = _evas_object_event_new(); 1440 event_id = _evas_object_event_new();
1437 1441
@@ -1465,12 +1469,12 @@ _canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data
1465 ev->cur.x = e->pointer.x; 1469 ev->cur.x = e->pointer.x;
1466 ev->cur.y = e->pointer.y; 1470 ev->cur.y = e->pointer.y;
1467 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1471 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1468 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_UP, NULL, 1472 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_UP, evt,
1469 event_id, EFL_EVENT_POINTER_UP, ev->eo); 1473 event_id, EFL_EVENT_POINTER_UP);
1470 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, NULL, 1474 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, evt,
1471 event_id, EFL_EVENT_FINGER_UP, ev->eo); 1475 event_id, EFL_EVENT_FINGER_UP);
1472 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1476 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1473 _evas_event_source_mouse_up_events(eo_obj, eo_e, ev->eo, event_id); 1477 _evas_event_source_mouse_up_events(eo_obj, eo_e, evt, event_id);
1474 if (e->delete_me) break; 1478 if (e->delete_me) break;
1475 } 1479 }
1476 } 1480 }
@@ -1485,7 +1489,7 @@ _canvas_event_feed_mouse_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data
1485 _evas_post_event_callback_call(eo_e, e); 1489 _evas_post_event_callback_call(eo_e, e);
1486 1490
1487 if (e->pointer.mouse_grabbed == 0) 1491 if (e->pointer.mouse_grabbed == 0)
1488 _post_up_handle(e, ev->eo); 1492 _post_up_handle(e, evt);
1489 1493
1490 if (e->pointer.mouse_grabbed < 0) 1494 if (e->pointer.mouse_grabbed < 0)
1491 { 1495 {
@@ -1654,8 +1658,8 @@ _canvas_event_feed_mouse_wheel_internal(Eo *eo_e, Efl_Event_Pointer_Data *pe)
1654 ev->cur.x = e->pointer.x; 1658 ev->cur.x = e->pointer.x;
1655 ev->cur.y = e->pointer.y; 1659 ev->cur.y = e->pointer.y;
1656 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1660 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1657 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_WHEEL, NULL, 1661 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_WHEEL, evt,
1658 event_id, EFL_EVENT_POINTER_WHEEL, evt); 1662 event_id, EFL_EVENT_POINTER_WHEEL);
1659 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1663 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1660 _evas_event_source_wheel_events(eo_obj, eo_e, evt, event_id); 1664 _evas_event_source_wheel_events(eo_obj, eo_e, evt, event_id);
1661 if (e->delete_me || e->is_frozen) break; 1665 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
1756 { 1760 {
1757 ev->cur = point; 1761 ev->cur = point;
1758 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1762 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1759 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, NULL, 1763 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt,
1760 event_id, EFL_EVENT_POINTER_MOVE, evt); 1764 event_id, EFL_EVENT_POINTER_MOVE);
1761 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, 1765 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
1762 event_id, EFL_EVENT_FINGER_MOVE, evt); 1766 event_id, EFL_EVENT_FINGER_MOVE);
1763 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1767 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1764 _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); 1768 _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id);
1765 } 1769 }
@@ -1796,8 +1800,8 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
1796 e->pointer.object.in = eina_list_remove(e->pointer.object.in, eo_obj); 1800 e->pointer.object.in = eina_list_remove(e->pointer.object.in, eo_obj);
1797 ev->cur = point; 1801 ev->cur = point;
1798 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1802 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1799 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, 1803 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
1800 event_id, EFL_EVENT_POINTER_OUT, evt); 1804 event_id, EFL_EVENT_POINTER_OUT);
1801 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1805 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1802 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); 1806 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id);
1803 } 1807 }
@@ -1841,10 +1845,10 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
1841 ev->cur = point; 1845 ev->cur = point;
1842 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1846 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1843 ev->action = EFL_POINTER_ACTION_MOVE; 1847 ev->action = EFL_POINTER_ACTION_MOVE;
1844 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, NULL, 1848 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt,
1845 event_id, EFL_EVENT_POINTER_MOVE, evt); 1849 event_id, EFL_EVENT_POINTER_MOVE);
1846 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, 1850 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
1847 event_id, EFL_EVENT_FINGER_MOVE, evt); 1851 event_id, EFL_EVENT_FINGER_MOVE);
1848 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1852 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1849 _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); 1853 _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id);
1850 } 1854 }
@@ -1857,8 +1861,8 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
1857 ev->cur = point; 1861 ev->cur = point;
1858 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1862 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1859 ev->action = EFL_POINTER_ACTION_OUT; 1863 ev->action = EFL_POINTER_ACTION_OUT;
1860 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, 1864 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
1861 event_id, EFL_EVENT_POINTER_OUT, evt); 1865 event_id, EFL_EVENT_POINTER_OUT);
1862 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1866 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1863 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); 1867 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id);
1864 if (e->delete_me) break; 1868 if (e->delete_me) break;
@@ -1884,8 +1888,8 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
1884 ev->cur = point; 1888 ev->cur = point;
1885 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1889 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1886 ev->action = EFL_POINTER_ACTION_IN; 1890 ev->action = EFL_POINTER_ACTION_IN;
1887 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, NULL, 1891 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt,
1888 event_id, EFL_EVENT_POINTER_IN, evt); 1892 event_id, EFL_EVENT_POINTER_IN);
1889 if ((obj->proxy->is_proxy) && 1893 if ((obj->proxy->is_proxy) &&
1890 (obj->proxy->src_events)) 1894 (obj->proxy->src_events))
1891 _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); 1895 _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id);
@@ -1973,10 +1977,10 @@ nogrep:
1973 ev->cur = point; 1977 ev->cur = point;
1974 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1978 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1975 ev->action = EFL_POINTER_ACTION_MOVE; 1979 ev->action = EFL_POINTER_ACTION_MOVE;
1976 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, NULL, 1980 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_MOVE, evt,
1977 event_id, EFL_EVENT_POINTER_MOVE, evt); 1981 event_id, EFL_EVENT_POINTER_MOVE);
1978 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, 1982 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
1979 event_id, EFL_EVENT_FINGER_MOVE, evt); 1983 event_id, EFL_EVENT_FINGER_MOVE);
1980 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1984 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1981 _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id); 1985 _evas_event_source_mouse_move_events(eo_obj, eo_e, evt, event_id);
1982 } 1986 }
@@ -1990,8 +1994,8 @@ nogrep:
1990 ev->cur = point; 1994 ev->cur = point;
1991 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 1995 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1992 ev->action = EFL_POINTER_ACTION_OUT; 1996 ev->action = EFL_POINTER_ACTION_OUT;
1993 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, 1997 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
1994 event_id, EFL_EVENT_POINTER_OUT, evt); 1998 event_id, EFL_EVENT_POINTER_OUT);
1995 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1999 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1996 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id); 2000 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id);
1997 } 2001 }
@@ -2015,8 +2019,8 @@ nogrep:
2015 ev->cur = point; 2019 ev->cur = point;
2016 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 2020 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
2017 ev->action = EFL_POINTER_ACTION_IN; 2021 ev->action = EFL_POINTER_ACTION_IN;
2018 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, NULL, 2022 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt,
2019 event_id, EFL_EVENT_POINTER_IN, evt); 2023 event_id, EFL_EVENT_POINTER_IN);
2020 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 2024 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
2021 _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id); 2025 _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id);
2022 if (e->delete_me) break; 2026 if (e->delete_me) break;
@@ -2075,6 +2079,7 @@ static void
2075_canvas_event_feed_mouse_in_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev) 2079_canvas_event_feed_mouse_in_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev)
2076{ 2080{
2077 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); 2081 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
2082 Efl_Event_Pointer *evt;
2078 Eina_List *ins; 2083 Eina_List *ins;
2079 Eina_List *l; 2084 Eina_List *l;
2080 Evas_Object *eo_obj; 2085 Evas_Object *eo_obj;
@@ -2088,6 +2093,7 @@ _canvas_event_feed_mouse_in_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev)
2088 e->last_timestamp = ev->timestamp; 2093 e->last_timestamp = ev->timestamp;
2089 if (e->pointer.mouse_grabbed != 0) return; 2094 if (e->pointer.mouse_grabbed != 0) return;
2090 2095
2096 evt = ev->eo;
2091 ev->action = EFL_POINTER_ACTION_IN; 2097 ev->action = EFL_POINTER_ACTION_IN;
2092 ev->pressed_buttons = e->pointer.button; 2098 ev->pressed_buttons = e->pointer.button;
2093 ev->cur.x = e->pointer.x; 2099 ev->cur.x = e->pointer.x;
@@ -2112,10 +2118,10 @@ _canvas_event_feed_mouse_in_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev)
2112 ev->cur.x = e->pointer.x; 2118 ev->cur.x = e->pointer.x;
2113 ev->cur.y = e->pointer.y; 2119 ev->cur.y = e->pointer.y;
2114 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 2120 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
2115 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, NULL, 2121 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_IN, evt,
2116 event_id, EFL_EVENT_POINTER_IN, ev->eo); 2122 event_id, EFL_EVENT_POINTER_IN);
2117 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 2123 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
2118 _evas_event_source_mouse_in_events(eo_obj, eo_e, ev->eo, event_id); 2124 _evas_event_source_mouse_in_events(eo_obj, eo_e, evt, event_id);
2119 if (e->delete_me || e->is_frozen) break; 2125 if (e->delete_me || e->is_frozen) break;
2120 } 2126 }
2121 } 2127 }
@@ -2134,6 +2140,7 @@ static void
2134_canvas_event_feed_mouse_out_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev) 2140_canvas_event_feed_mouse_out_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev)
2135{ 2141{
2136 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); 2142 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
2143 Efl_Event_Pointer *evt;
2137 Eina_List *l, *copy; 2144 Eina_List *l, *copy;
2138 Evas_Object *eo_obj; 2145 Evas_Object *eo_obj;
2139 int event_id; 2146 int event_id;
@@ -2146,6 +2153,7 @@ _canvas_event_feed_mouse_out_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev)
2146 2153
2147 event_id = _evas_object_event_new(); 2154 event_id = _evas_object_event_new();
2148 2155
2156 evt = ev->eo;
2149 ev->action = EFL_POINTER_ACTION_OUT; 2157 ev->action = EFL_POINTER_ACTION_OUT;
2150 ev->pressed_buttons = e->pointer.button; 2158 ev->pressed_buttons = e->pointer.button;
2151 ev->cur.x = e->pointer.x; 2159 ev->cur.x = e->pointer.x;
@@ -2169,10 +2177,10 @@ _canvas_event_feed_mouse_out_internal(Evas *eo_e, Efl_Event_Pointer_Data *ev)
2169 ev->cur.x = e->pointer.x; 2177 ev->cur.x = e->pointer.x;
2170 ev->cur.y = e->pointer.y; 2178 ev->cur.y = e->pointer.y;
2171 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 2179 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
2172 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, NULL, 2180 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, evt,
2173 event_id, EFL_EVENT_POINTER_OUT, ev->eo); 2181 event_id, EFL_EVENT_POINTER_OUT);
2174 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 2182 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
2175 _evas_event_source_mouse_out_events(eo_obj, eo_e, ev->eo, event_id); 2183 _evas_event_source_mouse_out_events(eo_obj, eo_e, evt, event_id);
2176 if (e->delete_me || e->is_frozen) break; 2184 if (e->delete_me || e->is_frozen) break;
2177 } 2185 }
2178 obj->mouse_grabbed = 0; 2186 obj->mouse_grabbed = 0;
@@ -2225,6 +2233,7 @@ evas_event_feed_mouse_out(Eo *eo_e, unsigned int timestamp, const void *data)
2225static void 2233static void
2226_canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) 2234_canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
2227{ 2235{
2236 Efl_Event_Pointer *evt;
2228 Eina_List *l, *copy; 2237 Eina_List *l, *copy;
2229 Evas_Object *eo_obj; 2238 Evas_Object *eo_obj;
2230 Eina_Vector2 point; 2239 Eina_Vector2 point;
@@ -2244,6 +2253,7 @@ _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
2244 event_id = _evas_object_event_new(); 2253 event_id = _evas_object_event_new();
2245 2254
2246 point = ev->cur; 2255 point = ev->cur;
2256 evt = ev->eo;
2247 ev->action = EFL_POINTER_ACTION_DOWN; 2257 ev->action = EFL_POINTER_ACTION_DOWN;
2248 ev->modifiers = &(e->modifiers); 2258 ev->modifiers = &(e->modifiers);
2249 ev->locks = &(e->locks); 2259 ev->locks = &(e->locks);
@@ -2272,10 +2282,10 @@ _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
2272 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 2282 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
2273 ev->cur = point; 2283 ev->cur = point;
2274 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 2284 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
2275 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, NULL, 2285 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_DOWN, evt,
2276 event_id, EFL_EVENT_FINGER_DOWN, ev->eo); 2286 event_id, EFL_EVENT_FINGER_DOWN);
2277 if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) 2287 if ((obj->proxy->is_proxy) || (obj->proxy->src_events))
2278 _evas_event_source_multi_down_events(obj, e, ev->eo, event_id); 2288 _evas_event_source_multi_down_events(obj, e, evt, event_id);
2279 if (e->delete_me || e->is_frozen) break; 2289 if (e->delete_me || e->is_frozen) break;
2280 } 2290 }
2281 eina_list_free(copy); 2291 eina_list_free(copy);
@@ -2291,6 +2301,7 @@ _canvas_event_feed_multi_down_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
2291static void 2301static void
2292_canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) 2302_canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
2293{ 2303{
2304 Efl_Event_Pointer *evt;
2294 Eina_List *l, *copy; 2305 Eina_List *l, *copy;
2295 Evas_Object *eo_obj; 2306 Evas_Object *eo_obj;
2296 Eina_Vector2 point; 2307 Eina_Vector2 point;
@@ -2310,6 +2321,7 @@ _canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data
2310 event_id = _evas_object_event_new(); 2321 event_id = _evas_object_event_new();
2311 2322
2312 point = ev->cur; 2323 point = ev->cur;
2324 evt = ev->eo;
2313 ev->action = EFL_POINTER_ACTION_UP; 2325 ev->action = EFL_POINTER_ACTION_UP;
2314 ev->modifiers = &(e->modifiers); 2326 ev->modifiers = &(e->modifiers);
2315 ev->locks = &(e->locks); 2327 ev->locks = &(e->locks);
@@ -2332,14 +2344,14 @@ _canvas_event_feed_multi_up_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data
2332 obj->mouse_grabbed--; 2344 obj->mouse_grabbed--;
2333 e->pointer.mouse_grabbed--; 2345 e->pointer.mouse_grabbed--;
2334 } 2346 }
2335 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, NULL, 2347 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_UP, evt,
2336 event_id, EFL_EVENT_FINGER_UP, ev->eo); 2348 event_id, EFL_EVENT_FINGER_UP);
2337 if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) 2349 if ((obj->proxy->is_proxy) || (obj->proxy->src_events))
2338 _evas_event_source_multi_up_events(obj, e, ev->eo, event_id); 2350 _evas_event_source_multi_up_events(obj, e, evt, event_id);
2339 if (e->delete_me || e->is_frozen) break; 2351 if (e->delete_me || e->is_frozen) break;
2340 } 2352 }
2341 eina_list_free(copy); 2353 eina_list_free(copy);
2342 if ((e->pointer.mouse_grabbed == 0) && !_post_up_handle(e, ev->eo)) 2354 if ((e->pointer.mouse_grabbed == 0) && !_post_up_handle(e, evt))
2343 _evas_post_event_callback_call(eo_e, e); 2355 _evas_post_event_callback_call(eo_e, e);
2344 /* remove released touch point from the touch point list */ 2356 /* remove released touch point from the touch point list */
2345 _evas_touch_point_remove(eo_e, ev->tool); 2357 _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,
2440static void 2452static void
2441_canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) 2453_canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
2442{ 2454{
2455 Efl_Event_Pointer *evt;
2443 Eina_List *l, *copy; 2456 Eina_List *l, *copy;
2444 Evas_Object *eo_obj; 2457 Evas_Object *eo_obj;
2445 Eina_Vector2 point; 2458 Eina_Vector2 point;
@@ -2456,6 +2469,7 @@ _canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
2456 2469
2457 if ((!e->pointer.inside) && (e->pointer.mouse_grabbed == 0)) return; 2470 if ((!e->pointer.inside) && (e->pointer.mouse_grabbed == 0)) return;
2458 2471
2472 evt = ev->eo;
2459 ev->cur.x = e->pointer.x; 2473 ev->cur.x = e->pointer.x;
2460 ev->cur.y = e->pointer.y; 2474 ev->cur.y = e->pointer.y;
2461 ev->modifiers = &(e->modifiers); 2475 ev->modifiers = &(e->modifiers);
@@ -2487,10 +2501,10 @@ _canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
2487 { 2501 {
2488 ev->cur = point; 2502 ev->cur = point;
2489 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 2503 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
2490 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, 2504 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
2491 event_id, EFL_EVENT_FINGER_MOVE, ev->eo); 2505 event_id, EFL_EVENT_FINGER_MOVE);
2492 if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) 2506 if ((obj->proxy->is_proxy) || (obj->proxy->src_events))
2493 _evas_event_source_multi_move_events(obj, e, ev->eo, event_id); 2507 _evas_event_source_multi_move_events(obj, e, evt, event_id);
2494 2508
2495 if (e->delete_me || e->is_frozen) break; 2509 if (e->delete_me || e->is_frozen) break;
2496 } 2510 }
@@ -2527,10 +2541,10 @@ _canvas_event_feed_multi_move_internal(Evas_Public_Data *e, Efl_Event_Pointer_Da
2527 { 2541 {
2528 ev->cur = point; 2542 ev->cur = point;
2529 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed); 2543 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
2530 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, NULL, 2544 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MULTI_MOVE, evt,
2531 event_id, EFL_EVENT_FINGER_MOVE, ev->eo); 2545 event_id, EFL_EVENT_FINGER_MOVE);
2532 if ((obj->proxy->is_proxy) || (obj->proxy->src_events)) 2546 if ((obj->proxy->is_proxy) || (obj->proxy->src_events))
2533 _evas_event_source_multi_move_events(obj, e, ev->eo, event_id); 2547 _evas_event_source_multi_move_events(obj, e, evt, event_id);
2534 } 2548 }
2535 if (e->delete_me || e->is_frozen) break; 2549 if (e->delete_me || e->is_frozen) break;
2536 } 2550 }
@@ -2579,6 +2593,7 @@ static void
2579_canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev) 2593_canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev)
2580{ 2594{
2581 Eina_Bool exclusive = EINA_FALSE; 2595 Eina_Bool exclusive = EINA_FALSE;
2596 Efl_Event_Pointer *evt;
2582 int event_id = 0; 2597 int event_id = 0;
2583 2598
2584 if (!e || !ev) return; 2599 if (!e || !ev) return;
@@ -2588,6 +2603,7 @@ _canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev
2588 2603
2589 event_id = _evas_object_event_new(); 2604 event_id = _evas_object_event_new();
2590 2605
2606 evt = ev->eo;
2591 ev->modifiers = &(e->modifiers); 2607 ev->modifiers = &(e->modifiers);
2592 ev->locks = &(e->locks); 2608 ev->locks = &(e->locks);
2593 ev->event_flags = e->default_event_flags; 2609 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
2619 if (!e->is_frozen && 2635 if (!e->is_frozen &&
2620 !evas_event_freezes_through(g->object, object_obj)) 2636 !evas_event_freezes_through(g->object, object_obj))
2621 { 2637 {
2622 evas_object_event_callback_call(g->object, object_obj, EVAS_CALLBACK_KEY_DOWN, NULL, 2638 evas_object_event_callback_call(g->object, object_obj, EVAS_CALLBACK_KEY_DOWN, evt,
2623 event_id, EFL_EVENT_KEY_DOWN, ev->eo); 2639 event_id, EFL_EVENT_KEY_DOWN);
2624 } 2640 }
2625 if (g->exclusive) exclusive = EINA_TRUE; 2641 if (g->exclusive) exclusive = EINA_TRUE;
2626 } 2642 }
@@ -2652,8 +2668,8 @@ _canvas_event_feed_key_down_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev
2652 Evas_Object_Protected_Data *focused_obj = efl_data_scope_get(e->focused, EFL_CANVAS_OBJECT_CLASS); 2668 Evas_Object_Protected_Data *focused_obj = efl_data_scope_get(e->focused, EFL_CANVAS_OBJECT_CLASS);
2653 if (!e->is_frozen && !evas_event_freezes_through(e->focused, focused_obj)) 2669 if (!e->is_frozen && !evas_event_freezes_through(e->focused, focused_obj))
2654 { 2670 {
2655 evas_object_event_callback_call(e->focused, focused_obj, EVAS_CALLBACK_KEY_DOWN, NULL, 2671 evas_object_event_callback_call(e->focused, focused_obj, EVAS_CALLBACK_KEY_DOWN, evt,
2656 event_id, EFL_EVENT_KEY_DOWN, ev->eo); 2672 event_id, EFL_EVENT_KEY_DOWN);
2657 } 2673 }
2658 } 2674 }
2659 _evas_post_event_callback_call(e->evas, e); 2675 _evas_post_event_callback_call(e->evas, e);
@@ -2666,6 +2682,7 @@ static void
2666_canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev) 2682_canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev)
2667{ 2683{
2668 Eina_Bool exclusive = EINA_FALSE; 2684 Eina_Bool exclusive = EINA_FALSE;
2685 Efl_Event_Pointer *evt;
2669 int event_id = 0; 2686 int event_id = 0;
2670 2687
2671 if (!e || !ev) return; 2688 if (!e || !ev) return;
@@ -2675,6 +2692,7 @@ _canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev)
2675 2692
2676 event_id = _evas_object_event_new(); 2693 event_id = _evas_object_event_new();
2677 2694
2695 evt = ev->eo;
2678 ev->modifiers = &(e->modifiers); 2696 ev->modifiers = &(e->modifiers);
2679 ev->locks = &(e->locks); 2697 ev->locks = &(e->locks);
2680 ev->event_flags = e->default_event_flags; 2698 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)
2706 !evas_event_freezes_through(g->object, object_obj)) 2724 !evas_event_freezes_through(g->object, object_obj))
2707 { 2725 {
2708 evas_object_event_callback_call 2726 evas_object_event_callback_call
2709 (g->object, object_obj, EVAS_CALLBACK_KEY_UP, NULL, 2727 (g->object, object_obj, EVAS_CALLBACK_KEY_UP, evt,
2710 event_id, EFL_EVENT_KEY_UP, ev->eo); 2728 event_id, EFL_EVENT_KEY_UP);
2711 } 2729 }
2712 if (g->exclusive) exclusive = EINA_TRUE; 2730 if (g->exclusive) exclusive = EINA_TRUE;
2713 } 2731 }
@@ -2741,8 +2759,8 @@ _canvas_event_feed_key_up_internal(Evas_Public_Data *e, Efl_Event_Key_Data *ev)
2741 if (!e->is_frozen && !evas_event_freezes_through(e->focused, focused_obj)) 2759 if (!e->is_frozen && !evas_event_freezes_through(e->focused, focused_obj))
2742 { 2760 {
2743 evas_object_event_callback_call 2761 evas_object_event_callback_call
2744 (e->focused, focused_obj, EVAS_CALLBACK_KEY_UP, NULL, 2762 (e->focused, focused_obj, EVAS_CALLBACK_KEY_UP, evt,
2745 event_id, EFL_EVENT_KEY_UP, ev->eo); 2763 event_id, EFL_EVENT_KEY_UP);
2746 } 2764 }
2747 } 2765 }
2748 _evas_post_event_callback_call(e->evas, e); 2766 _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
2847 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 2865 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
2848 if ( !evas_event_freezes_through(eo_obj, obj)) 2866 if ( !evas_event_freezes_through(eo_obj, obj))
2849 { 2867 {
2850 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, NULL, 2868 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HOLD, evt,
2851 event_id, EFL_EVENT_HOLD, evt); 2869 event_id, EFL_EVENT_HOLD);
2852 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 2870 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
2853 _evas_event_source_hold_events(eo_obj, event_id, evt); 2871 _evas_event_source_hold_events(eo_obj, event_id, evt);
2854 } 2872 }
@@ -2866,6 +2884,7 @@ evas_event_feed_hold(Eo *eo_e, int hold, unsigned int timestamp, const void *dat
2866void 2884void
2867_canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev) 2885_canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_Data *ev)
2868{ 2886{
2887 Efl_Event_Pointer *evt;
2869 Eina_List *l, *copy; 2888 Eina_List *l, *copy;
2870 Evas_Object *eo_obj; 2889 Evas_Object *eo_obj;
2871 int event_id = 0; 2890 int event_id = 0;
@@ -2879,6 +2898,7 @@ _canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_D
2879 2898
2880 ev->action = EFL_POINTER_ACTION_AXIS; 2899 ev->action = EFL_POINTER_ACTION_AXIS;
2881 event_id = _evas_object_event_new(); 2900 event_id = _evas_object_event_new();
2901 evt = ev->eo;
2882 2902
2883 if (ev->device) efl_ref(ev->device); 2903 if (ev->device) efl_ref(ev->device);
2884 2904
@@ -2891,8 +2911,8 @@ _canvas_event_feed_axis_update_internal(Evas_Public_Data *e, Efl_Event_Pointer_D
2891 if (!evas_event_freezes_through(eo_obj, obj)) 2911 if (!evas_event_freezes_through(eo_obj, obj))
2892 { 2912 {
2893 evas_object_event_callback_call(eo_obj, obj, 2913 evas_object_event_callback_call(eo_obj, obj,
2894 EVAS_CALLBACK_AXIS_UPDATE, NULL, 2914 EVAS_CALLBACK_AXIS_UPDATE, evt,
2895 event_id, EFL_EVENT_POINTER_AXIS, ev->eo); 2915 event_id, EFL_EVENT_POINTER_AXIS);
2896 if (e->delete_me || e->is_frozen) break; 2916 if (e->delete_me || e->is_frozen) break;
2897 } 2917 }
2898 } 2918 }
@@ -2918,7 +2938,6 @@ evas_event_feed_axis_update(Evas *eo_e, unsigned int timestamp, int device, int
2918 ev->data = (void *) data; 2938 ev->data = (void *) data;
2919 ev->timestamp = timestamp; 2939 ev->timestamp = timestamp;
2920 ev->action = EFL_POINTER_ACTION_AXIS; 2940 ev->action = EFL_POINTER_ACTION_AXIS;
2921 ev->device = _evas_device_top_get(eo_e); // FIXME
2922 ev->tool = toolid; 2941 ev->tool = toolid;
2923 2942
2924 // see also ecore_evas.c 2943 // see also ecore_evas.c
@@ -2960,6 +2979,10 @@ evas_event_feed_axis_update(Evas *eo_e, unsigned int timestamp, int device, int
2960 } 2979 }
2961 } 2980 }
2962 2981
2982 /* FIXME: set proper device based on the device id (X or WL specific) */
2983 ev->device = _evas_device_top_get(eo_e); // FIXME
2984 (void) device;
2985
2963 _canvas_event_feed_axis_update_internal(e, ev); 2986 _canvas_event_feed_axis_update_internal(e, ev);
2964 2987
2965 efl_del(evt); 2988 efl_del(evt);
diff --git a/src/lib/evas/canvas/evas_focus.c b/src/lib/evas/canvas/evas_focus.c
index 7b896706f0..fc1515f3a6 100644
--- a/src/lib/evas/canvas/evas_focus.c
+++ b/src/lib/evas/canvas/evas_focus.c
@@ -27,7 +27,7 @@ _efl_canvas_object_key_focus_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Ei
27 if (obj->layer->evas->focused) goto end; 27 if (obj->layer->evas->focused) goto end;
28 obj->focused = 1; 28 obj->focused = 1;
29 obj->layer->evas->focused = eo_obj; 29 obj->layer->evas->focused = eo_obj;
30 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id, NULL, NULL); 30 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id, EFL_CANVAS_OBJECT_EVENT_FOCUS_IN);
31 evas_event_callback_call(obj->layer->evas->evas, 31 evas_event_callback_call(obj->layer->evas->evas,
32 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, eo_obj); 32 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, eo_obj);
33 } 33 }
@@ -35,7 +35,7 @@ _efl_canvas_object_key_focus_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Ei
35 { 35 {
36 obj->focused = 0; 36 obj->focused = 0;
37 obj->layer->evas->focused = NULL; 37 obj->layer->evas->focused = NULL;
38 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, event_id, NULL, NULL); 38 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, event_id, EFL_CANVAS_OBJECT_EVENT_FOCUS_OUT);
39 evas_event_callback_call(obj->layer->evas->evas, 39 evas_event_callback_call(obj->layer->evas->evas,
40 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, eo_obj); 40 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, eo_obj);
41 } 41 }
diff --git a/src/lib/evas/canvas/evas_object_inform.c b/src/lib/evas/canvas/evas_object_inform.c
index 9d77ad9b57..77b7f1ca43 100644
--- a/src/lib/evas/canvas/evas_object_inform.c
+++ b/src/lib/evas/canvas/evas_object_inform.c
@@ -8,7 +8,7 @@ evas_object_inform_call_show(Evas_Object *eo_obj)
8{ 8{
9 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 9 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
10 10
11 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_SHOW, NULL, _evas_object_event_new(), NULL, NULL); 11 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_SHOW, NULL, _evas_object_event_new(), EFL_GFX_EVENT_SHOW);
12 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 12 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
13} 13}
14 14
@@ -17,14 +17,14 @@ evas_object_inform_call_hide(Evas_Object *eo_obj)
17{ 17{
18 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 18 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
19 19
20 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HIDE, NULL, _evas_object_event_new(), NULL, NULL); 20 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_HIDE, NULL, _evas_object_event_new(), EFL_GFX_EVENT_HIDE);
21 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 21 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
22} 22}
23 23
24void 24void
25evas_object_inform_call_move(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) 25evas_object_inform_call_move(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
26{ 26{
27 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOVE, NULL, _evas_object_event_new(), NULL, NULL); 27 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOVE, NULL, _evas_object_event_new(), EFL_GFX_EVENT_MOVE);
28 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 28 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
29} 29}
30 30
@@ -32,7 +32,7 @@ void
32evas_object_inform_call_resize(Evas_Object *eo_obj) 32evas_object_inform_call_resize(Evas_Object *eo_obj)
33{ 33{
34 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 34 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
35 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_RESIZE, NULL, _evas_object_event_new(), NULL, NULL); 35 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_RESIZE, NULL, _evas_object_event_new(), EFL_GFX_EVENT_RESIZE);
36 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 36 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
37} 37}
38 38
@@ -40,7 +40,7 @@ void
40evas_object_inform_call_restack(Evas_Object *eo_obj) 40evas_object_inform_call_restack(Evas_Object *eo_obj)
41{ 41{
42 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 42 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
43 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_RESTACK, NULL, _evas_object_event_new(), NULL, NULL); 43 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_RESTACK, NULL, _evas_object_event_new(), EFL_GFX_EVENT_RESTACK);
44 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 44 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
45} 45}
46 46
@@ -48,7 +48,7 @@ void
48evas_object_inform_call_changed_size_hints(Evas_Object *eo_obj) 48evas_object_inform_call_changed_size_hints(Evas_Object *eo_obj)
49{ 49{
50 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 50 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
51 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, NULL, _evas_object_event_new(), NULL, NULL); 51 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, NULL, _evas_object_event_new(), EFL_GFX_EVENT_CHANGE_SIZE_HINTS);
52 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 52 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
53} 53}
54 54
@@ -62,7 +62,7 @@ evas_object_inform_call_image_preloaded(Evas_Object *eo_obj)
62 _evas_object_image_preloading_check(eo_obj); 62 _evas_object_image_preloading_check(eo_obj);
63 _evas_object_image_preloading_set(eo_obj, 0); 63 _evas_object_image_preloading_set(eo_obj, 0);
64 64
65 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_PRELOADED, NULL, _evas_object_event_new(), NULL, NULL); 65 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_PRELOADED, NULL, _evas_object_event_new(), EFL_IMAGE_EVENT_PRELOAD);
66 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 66 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
67} 67}
68 68
@@ -70,7 +70,7 @@ void
70evas_object_inform_call_image_unloaded(Evas_Object *eo_obj) 70evas_object_inform_call_image_unloaded(Evas_Object *eo_obj)
71{ 71{
72 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 72 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
73 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_UNLOADED, NULL, _evas_object_event_new(), NULL, NULL); 73 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_UNLOADED, NULL, _evas_object_event_new(), EFL_IMAGE_EVENT_UNLOAD);
74 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 74 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
75} 75}
76 76
@@ -78,6 +78,6 @@ void
78evas_object_inform_call_image_resize(Evas_Object *eo_obj) 78evas_object_inform_call_image_resize(Evas_Object *eo_obj)
79{ 79{
80 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 80 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
81 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_RESIZE, NULL, _evas_object_event_new(), NULL, NULL); 81 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_RESIZE, NULL, _evas_object_event_new(), EFL_IMAGE_EVENT_RESIZE);
82 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 82 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
83} 83}
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index d7e3aa570f..1e63b5c72c 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -693,11 +693,11 @@ _efl_canvas_object_efl_object_destructor(Eo *eo_obj, Evas_Object_Protected_Data
693 obj->focused = EINA_FALSE; 693 obj->focused = EINA_FALSE;
694 if ((obj->layer) && (obj->layer->evas)) 694 if ((obj->layer) && (obj->layer->evas))
695 obj->layer->evas->focused = NULL; 695 obj->layer->evas->focused = NULL;
696 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, _evas_object_event_new(), NULL, NULL); 696 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, _evas_object_event_new(), EFL_CANVAS_OBJECT_EVENT_FOCUS_OUT);
697 if ((obj->layer) && (obj->layer->evas)) 697 if ((obj->layer) && (obj->layer->evas))
698 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 698 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
699 } 699 }
700 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_DEL, NULL, _evas_object_event_new(), NULL, NULL); 700 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_DEL, NULL, _evas_object_event_new(), NULL);
701 if ((obj->layer) && (obj->layer->evas)) 701 if ((obj->layer) && (obj->layer->evas))
702 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 702 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
703 if ((obj->mouse_grabbed > 0) && (obj->layer) && (obj->layer->evas)) 703 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
755 755
756 evas_object_map_set(eo_obj, NULL); 756 evas_object_map_set(eo_obj, NULL);
757 if (obj->is_smart) evas_object_smart_del(eo_obj); 757 if (obj->is_smart) evas_object_smart_del(eo_obj);
758 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FREE, NULL, _evas_object_event_new(), NULL, NULL); 758 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FREE, NULL, _evas_object_event_new(), NULL);
759 if ((obj->layer) && (obj->layer->evas)) 759 if ((obj->layer) && (obj->layer->evas))
760 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas); 760 _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
761 evas_object_smart_cleanup(eo_obj); 761 evas_object_smart_cleanup(eo_obj);
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index ceac5872ad..b3b52a1560 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1552,7 +1552,7 @@ void evas_object_clip_across_clippees_check(Evas_Object *obj, Evas_Object_Protec
1552void evas_object_mapped_clip_across_mark(Evas_Object *obj, Evas_Object_Protected_Data *pd); 1552void evas_object_mapped_clip_across_mark(Evas_Object *obj, Evas_Object_Protected_Data *pd);
1553void evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info); 1553void evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info);
1554void evas_object_callback_init(Efl_Canvas_Object *eo_obj, Evas_Object_Protected_Data *obj); 1554void evas_object_callback_init(Efl_Canvas_Object *eo_obj, Evas_Object_Protected_Data *obj);
1555void 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); 1555void 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);
1556Eina_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y); 1556Eina_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y);
1557int evas_mem_free(int mem_required); 1557int evas_mem_free(int mem_required);
1558int evas_mem_degrade(int mem_required); 1558int evas_mem_degrade(int mem_required);