summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2012-11-13 10:59:38 +0000
committerChunEon Park <hermet@hermet.pe.kr>2012-11-13 10:59:38 +0000
commitb313edd3e46df3e2acd7c3f5aac339e177e10b18 (patch)
tree30565eb789bfb78d67b3fd898c871d5e97f333b9
parent9cf4d766abd87da2467aea2b1a0623dacc6a372c (diff)
evas/event - don't transform the output in the source events.
and use the Point structure for clean code. Signed-Off-By: Leandro Dorileo<dorileo@profusion.mobi> Signed-Off-By: ChunEon Park<hermet@hermet.pe.kr> SVN revision: 79224
Diffstat (limited to '')
-rw-r--r--src/lib/evas/canvas/evas_events.c137
1 files changed, 32 insertions, 105 deletions
diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c
index 01f7cd0fa0..ba643b7045 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -194,29 +194,23 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
194 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 194 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
195 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 195 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
196 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 196 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
197 Evas_Point output = ev->output;
198 Evas_Coord_Point canvas = ev->canvas; 197 Evas_Coord_Point canvas = ev->canvas;
199 198
200 if (obj->delete_me || src->delete_me || e->is_frozen) return; 199 if (obj->delete_me || src->delete_me || e->is_frozen) return;
201 200
202 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y); 201 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
203 202
204 ev->output.x = ev->canvas.x;
205 ev->output.y = ev->canvas.y;
206
207 if (src->proxy.src_event_in) 203 if (src->proxy.src_event_in)
208 src->proxy.src_event_in = eina_list_free(src->proxy.src_event_in); 204 src->proxy.src_event_in = eina_list_free(src->proxy.src_event_in);
209 205
210 int no_rep = 0; 206 int no_rep = 0;
211 Eina_List *l; 207 Eina_List *l;
212 Evas_Object *eo_child; 208 Evas_Object *eo_child;
209 Evas_Object_Protected_Data *child;
213 210
214 if (src->is_smart) 211 if (src->is_smart)
215 { 212 {
216 src->proxy.src_event_in = 213 src->proxy.src_event_in = _evas_event_object_list_raw_in_get(eo_e, src->proxy.src_event_in, evas_object_smart_members_get_direct(eo_src), NULL, ev->canvas.x, ev->canvas.y, &no_rep, EINA_TRUE);
217 _evas_event_object_list_raw_in_get(eo_e, src->proxy.src_event_in,
218 evas_object_smart_members_get_direct(eo_src),
219 NULL, ev->canvas.x, ev->canvas.y, &no_rep, EINA_TRUE);
220 } 214 }
221 else 215 else
222 src->proxy.src_event_in = eina_list_append(src->proxy.src_event_in, eo_src); 216 src->proxy.src_event_in = eina_list_append(src->proxy.src_event_in, eo_src);
@@ -226,8 +220,6 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
226 220
227 EINA_LIST_FOREACH(src->proxy.src_event_in, l, eo_child) 221 EINA_LIST_FOREACH(src->proxy.src_event_in, l, eo_child)
228 { 222 {
229 Evas_Object_Protected_Data *child;
230
231 child = eo_data_get(eo_child, EVAS_OBJ_CLASS); 223 child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
232 if ((child->pointer_mode == EVAS_OBJECT_POINTER_MODE_AUTOGRAB) || 224 if ((child->pointer_mode == EVAS_OBJECT_POINTER_MODE_AUTOGRAB) ||
233 (child->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)) 225 (child->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN))
@@ -243,17 +235,12 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
243 } 235 }
244 } 236 }
245 237
246 Evas_Coord point_x = ev->canvas.x; 238 Evas_Coord_Point point = ev->canvas;
247 Evas_Coord point_y = ev->canvas.y;
248
249 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in); 239 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in);
250 EINA_LIST_FOREACH(copy, l, eo_child) 240 EINA_LIST_FOREACH(copy, l, eo_child)
251 { 241 {
252 Evas_Object_Protected_Data *child;
253
254 child = eo_data_get(eo_child, EVAS_OBJ_CLASS); 242 child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
255 ev->canvas.x = point_x; 243 ev->canvas = point;
256 ev->canvas.y = point_y;
257 _evas_event_framespace_adjust(eo_child, &ev->canvas.x, 244 _evas_event_framespace_adjust(eo_child, &ev->canvas.x,
258 &ev->canvas.y); 245 &ev->canvas.y);
259 _evas_event_havemap_adjust(eo_child, child, &ev->canvas.x, 246 _evas_event_havemap_adjust(eo_child, child, &ev->canvas.x,
@@ -268,7 +255,6 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
268 } 255 }
269 eina_list_free(copy); 256 eina_list_free(copy);
270 ev->canvas = canvas; 257 ev->canvas = canvas;
271 ev->output = output;
272} 258}
273 259
274static void 260static void
@@ -278,21 +264,17 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
278 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 264 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
279 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 265 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
280 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 266 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
281 Evas_Position cur_pos = ev->cur; 267 Evas_Coord_Point canvas = ev->cur.canvas;
282 268
283 if (obj->delete_me || src->delete_me || e->is_frozen) return; 269 if (obj->delete_me || src->delete_me || e->is_frozen) return;
284 270
285 _transform_to_src_space(obj, src, &ev->cur.canvas.x, &ev->cur.canvas.y); 271 _transform_to_src_space(obj, src, &ev->cur.canvas.x, &ev->cur.canvas.y);
286 272
287 ev->cur.output.x = ev->cur.canvas.x;
288 ev->cur.output.y = ev->cur.canvas.y;
289
290 //FIXME: transform previous coords also. 273 //FIXME: transform previous coords also.
291 Eina_List *l; 274 Eina_List *l;
292 Evas_Object *eo_child; 275 Evas_Object *eo_child;
293 Evas_Object_Protected_Data *child; 276 Evas_Object_Protected_Data *child;
294 Evas_Coord point_x = ev->cur.canvas.x; 277 Evas_Coord_Point point = ev->cur.canvas;
295 Evas_Coord point_y = ev->cur.canvas.y;
296 278
297 if (e->pointer.mouse_grabbed) 279 if (e->pointer.mouse_grabbed)
298 { 280 {
@@ -308,8 +290,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
308 (!evas_event_freezes_through(eo_child, child)) && 290 (!evas_event_freezes_through(eo_child, child)) &&
309 (!child->clip.clipees)) 291 (!child->clip.clipees))
310 { 292 {
311 ev->cur.canvas.x = point_x; 293 ev->cur.canvas = point;
312 ev->cur.canvas.y = point_y;
313 _evas_event_framespace_adjust(eo_child, &ev->cur.canvas.x, 294 _evas_event_framespace_adjust(eo_child, &ev->cur.canvas.x,
314 &ev->cur.canvas.y); 295 &ev->cur.canvas.y);
315 _evas_event_havemap_adjust(eo_child, child, &ev->cur.canvas.x, 296 _evas_event_havemap_adjust(eo_child, child, &ev->cur.canvas.x,
@@ -338,8 +319,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
338 if (child->mouse_in) continue; 319 if (child->mouse_in) continue;
339 child->mouse_in = 0; 320 child->mouse_in = 0;
340 if (child->delete_me || e->is_frozen) continue; 321 if (child->delete_me || e->is_frozen) continue;
341 ev->cur.canvas.x = cur_pos.canvas.x; 322 ev->cur.canvas = canvas;
342 ev->cur.canvas.y = cur_pos.canvas.y;
343 _evas_event_framespace_adjust(eo_child, &ev->cur.canvas.x, 323 _evas_event_framespace_adjust(eo_child, &ev->cur.canvas.x,
344 &ev->cur.canvas.y); 324 &ev->cur.canvas.y);
345 _evas_event_havemap_adjust(eo_child, child, &ev->cur.canvas.x, 325 _evas_event_havemap_adjust(eo_child, child, &ev->cur.canvas.x,
@@ -369,8 +349,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
369 { 349 {
370 child = eo_data_get(eo_child, EVAS_OBJ_CLASS); 350 child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
371 351
372 ev->cur.canvas.x = point_x; 352 ev->cur.canvas = point;
373 ev->cur.canvas.y = point_y;
374 353
375 if (evas_object_is_in_output_rect(eo_child, child, 354 if (evas_object_is_in_output_rect(eo_child, child,
376 ev->cur.canvas.x, 355 ev->cur.canvas.x,
@@ -398,8 +377,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
398 { 377 {
399 child->mouse_in = 0; 378 child->mouse_in = 0;
400 if (e->is_frozen) continue; 379 if (e->is_frozen) continue;
401 ev->cur.canvas.x = point_x; 380 ev->cur.canvas = point;
402 ev->cur.canvas.y = point_y;
403 _evas_event_framespace_adjust(eo_child, 381 _evas_event_framespace_adjust(eo_child,
404 &ev->cur.canvas.x, 382 &ev->cur.canvas.x,
405 &ev->cur.canvas.y); 383 &ev->cur.canvas.y);
@@ -427,8 +405,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
427 { 405 {
428 child->mouse_in = 1; 406 child->mouse_in = 1;
429 if (e->is_frozen) continue; 407 if (e->is_frozen) continue;
430 ev->cur.canvas.x = point_x; 408 ev->cur.canvas = point;
431 ev->cur.canvas.y = point_y;
432 _evas_event_framespace_adjust(eo_child, 409 _evas_event_framespace_adjust(eo_child,
433 &ev->cur.canvas.x, 410 &ev->cur.canvas.x,
434 &ev->cur.canvas.y); 411 &ev->cur.canvas.y);
@@ -454,8 +431,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
454 if (ins) eina_list_free(ins); 431 if (ins) eina_list_free(ins);
455 } 432 }
456 } 433 }
457 434 ev->cur.canvas = canvas;
458 ev->cur = cur_pos;
459} 435}
460 436
461static void 437static void
@@ -465,21 +441,16 @@ _evas_event_source_mouse_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_M
465 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 441 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
466 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 442 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
467 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 443 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
468 Evas_Point output = ev->output;
469 Evas_Coord_Point canvas = ev->canvas; 444 Evas_Coord_Point canvas = ev->canvas;
470 445
471 if (obj->delete_me || src->delete_me || e->is_frozen) return; 446 if (obj->delete_me || src->delete_me || e->is_frozen) return;
472 447
473 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y); 448 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
474 449
475 ev->output.x = ev->canvas.x;
476 ev->output.y = ev->canvas.y;
477
478 Eina_List *l; 450 Eina_List *l;
479 Evas_Object *eo_child; 451 Evas_Object *eo_child;
480 Evas_Object_Protected_Data *child; 452 Evas_Object_Protected_Data *child;
481 Evas_Coord point_x = ev->canvas.x; 453 Evas_Coord_Point point = ev->canvas;
482 Evas_Coord point_y = ev->canvas.y;
483 454
484 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in); 455 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in);
485 EINA_LIST_FOREACH(copy, l, eo_child) 456 EINA_LIST_FOREACH(copy, l, eo_child)
@@ -493,8 +464,7 @@ _evas_event_source_mouse_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_M
493 e->pointer.mouse_grabbed--; 464 e->pointer.mouse_grabbed--;
494 } 465 }
495 466
496 ev->canvas.x = point_x; 467 ev->canvas = point;
497 ev->canvas.y = point_y;
498 _evas_event_framespace_adjust(eo_child, 468 _evas_event_framespace_adjust(eo_child,
499 &ev->canvas.x, 469 &ev->canvas.x,
500 &ev->canvas.y); 470 &ev->canvas.y);
@@ -515,7 +485,6 @@ _evas_event_source_mouse_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_M
515 eina_list_free(copy); 485 eina_list_free(copy);
516 486
517 ev->canvas = canvas; 487 ev->canvas = canvas;
518 ev->output = output;
519} 488}
520 489
521static void 490static void
@@ -547,29 +516,23 @@ _evas_event_source_wheel_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Mous
547 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 516 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
548 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 517 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
549 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 518 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
550 Evas_Point output = ev->output;
551 Evas_Coord_Point canvas = ev->canvas; 519 Evas_Coord_Point canvas = ev->canvas;
552 520
553 if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return; 521 if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return;
554 522
555 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y); 523 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
556 524
557 ev->output.x = ev->canvas.x;
558 ev->output.y = ev->canvas.y;
559
560 Eina_List *l; 525 Eina_List *l;
561 Evas_Object *eo_child; 526 Evas_Object *eo_child;
562 Evas_Object_Protected_Data *child; 527 Evas_Object_Protected_Data *child;
563 Evas_Coord point_x = ev->canvas.x; 528 Evas_Coord_Point point = ev->canvas;
564 Evas_Coord point_y = ev->canvas.y;
565 529
566 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in); 530 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in);
567 EINA_LIST_FOREACH(copy, l, eo_child) 531 EINA_LIST_FOREACH(copy, l, eo_child)
568 { 532 {
569 if (src->delete_me) return; 533 if (src->delete_me) return;
570 child = eo_data_get(eo_child, EVAS_OBJ_CLASS); 534 child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
571 ev->canvas.x = point_x; 535 ev->canvas = point;
572 ev->canvas.y = point_y;
573 _evas_event_framespace_adjust(eo_child, 536 _evas_event_framespace_adjust(eo_child,
574 &ev->canvas.x, 537 &ev->canvas.x,
575 &ev->canvas.y); 538 &ev->canvas.y);
@@ -583,7 +546,6 @@ _evas_event_source_wheel_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_Mous
583 } 546 }
584 eina_list_free(copy); 547 eina_list_free(copy);
585 ev->canvas = canvas; 548 ev->canvas = canvas;
586 ev->output = output;
587} 549}
588 550
589static void 551static void
@@ -593,7 +555,6 @@ _evas_event_source_multi_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
593 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 555 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
594 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 556 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
595 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 557 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
596 Evas_Point output = ev->output;
597 Evas_Coord_Precision_Point canvas = ev->canvas; 558 Evas_Coord_Precision_Point canvas = ev->canvas;
598 559
599 if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return; 560 if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return;
@@ -601,19 +562,15 @@ _evas_event_source_multi_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
601 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y); 562 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
602 //FIXME: transform precision 563 //FIXME: transform precision
603 564
604 ev->output.x = ev->canvas.x;
605 ev->output.y = ev->canvas.y;
606
607 Eina_List *l; 565 Eina_List *l;
608 Evas_Object *eo_child; 566 Evas_Object *eo_child;
567 Evas_Object_Protected_Data *child = NULL;
609 568
610 int addgrab = 0; 569 int addgrab = 0;
611 if (e->pointer.downs > 1) addgrab = e->pointer.downs - 1; 570 if (e->pointer.downs > 1) addgrab = e->pointer.downs - 1;
612 571
613 EINA_LIST_FOREACH(src->proxy.src_event_in, l, eo_child) 572 EINA_LIST_FOREACH(src->proxy.src_event_in, l, eo_child)
614 { 573 {
615 Evas_Object_Protected_Data *child;
616
617 child = eo_data_get(eo_child, EVAS_OBJ_CLASS); 574 child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
618 if (child->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) 575 if (child->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB)
619 { 576 {
@@ -622,17 +579,12 @@ _evas_event_source_multi_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
622 } 579 }
623 } 580 }
624 581
582 Evas_Coord_Precision_Point point = ev->canvas;
583
625 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in); 584 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in);
626 EINA_LIST_FOREACH(copy, l, eo_child) 585 EINA_LIST_FOREACH(copy, l, eo_child)
627 { 586 {
628 Evas_Coord point_x = ev->canvas.x; 587 ev->canvas = point;
629 Evas_Coord point_y = ev->canvas.y;
630 Evas_Object_Protected_Data *child;
631
632 child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
633
634 ev->canvas.x = point_x;
635 ev->canvas.y = point_y;
636 _evas_event_framespace_adjust(eo_child, 588 _evas_event_framespace_adjust(eo_child,
637 &ev->canvas.x, 589 &ev->canvas.x,
638 &ev->canvas.y); 590 &ev->canvas.y);
@@ -640,6 +592,7 @@ _evas_event_source_multi_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
640 &ev->canvas.x, 592 &ev->canvas.x,
641 &ev->canvas.y, 593 &ev->canvas.y,
642 child->mouse_grabbed); 594 child->mouse_grabbed);
595 child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
643 evas_object_event_callback_call(eo_child, child, 596 evas_object_event_callback_call(eo_child, child,
644 EVAS_CALLBACK_MULTI_DOWN, ev, event_id); 597 EVAS_CALLBACK_MULTI_DOWN, ev, event_id);
645 if (e->delete_me) break; 598 if (e->delete_me) break;
@@ -647,7 +600,6 @@ _evas_event_source_multi_down_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
647 eina_list_free(copy); 600 eina_list_free(copy);
648 601
649 ev->canvas = canvas; 602 ev->canvas = canvas;
650 ev->output = output;
651} 603}
652 604
653static void 605static void
@@ -657,7 +609,6 @@ _evas_event_source_multi_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_M
657 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 609 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
658 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 610 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
659 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 611 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
660 Evas_Point output = ev->output;
661 Evas_Coord_Precision_Point canvas = ev->canvas; 612 Evas_Coord_Precision_Point canvas = ev->canvas;
662 613
663 if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return; 614 if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return;
@@ -665,11 +616,7 @@ _evas_event_source_multi_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_M
665 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y); 616 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
666 //FIXME: transform precision 617 //FIXME: transform precision
667 618
668 ev->output.x = ev->canvas.x; 619 Evas_Coord_Precision_Point point = ev->canvas;
669 ev->output.y = ev->canvas.y;
670
671 Evas_Coord point_x = ev->canvas.x;
672 Evas_Coord point_y = ev->canvas.y;
673 620
674 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in); 621 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in);
675 622
@@ -678,8 +625,7 @@ _evas_event_source_multi_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_M
678 Evas_Object_Protected_Data *child = NULL; 625 Evas_Object_Protected_Data *child = NULL;
679 EINA_LIST_FOREACH(copy, l, eo_child) 626 EINA_LIST_FOREACH(copy, l, eo_child)
680 { 627 {
681 ev->canvas.x = point_x; 628 ev->canvas = point;
682 ev->canvas.y = point_y;
683 if ((child->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) && 629 if ((child->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) &&
684 (child->mouse_grabbed > 0)) 630 (child->mouse_grabbed > 0))
685 { 631 {
@@ -701,7 +647,6 @@ _evas_event_source_multi_up_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_M
701 eina_list_free(copy); 647 eina_list_free(copy);
702 648
703 ev->canvas = canvas; 649 ev->canvas = canvas;
704 ev->output = output;
705} 650}
706 651
707static void 652static void
@@ -711,18 +656,15 @@ _evas_event_source_multi_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
711 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 656 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
712 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 657 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
713 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 658 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
714 Evas_Precision_Position cur_pos = ev->cur; 659 Evas_Coord_Precision_Point canvas = ev->cur.canvas;
715 660
716 if (obj->delete_me || src->delete_me || e->is_frozen) return; 661 if (obj->delete_me || src->delete_me || e->is_frozen) return;
717 662
718 _transform_to_src_space(obj, src, &ev->cur.canvas.x, &ev->cur.canvas.y); 663 _transform_to_src_space(obj, src, &ev->cur.canvas.x, &ev->cur.canvas.y);
719 664
720 ev->cur.output.x = ev->cur.canvas.x;
721 ev->cur.output.y = ev->cur.canvas.y;
722 //FIXME: transform precision 665 //FIXME: transform precision
723 666
724 Evas_Coord point_x = ev->cur.canvas.x; 667 Evas_Coord_Precision_Point point = ev->cur.canvas;
725 Evas_Coord point_y = ev->cur.canvas.y;
726 668
727 _evas_object_event_new(); 669 _evas_object_event_new();
728 event_id = _evas_event_counter; 670 event_id = _evas_event_counter;
@@ -742,8 +684,7 @@ _evas_event_source_multi_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
742 (!evas_event_freezes_through(eo_child, child)) && 684 (!evas_event_freezes_through(eo_child, child)) &&
743 (!child->clip.clipees)))) 685 (!child->clip.clipees))))
744 { 686 {
745 ev->cur.canvas.x = point_x; 687 ev->cur.canvas = point;
746 ev->cur.canvas.y = point_y;
747 _evas_event_framespace_adjust(eo_child, 688 _evas_event_framespace_adjust(eo_child,
748 &ev->cur.canvas.x, 689 &ev->cur.canvas.x,
749 &ev->cur.canvas.y); 690 &ev->cur.canvas.y);
@@ -775,8 +716,7 @@ _evas_event_source_multi_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
775 EINA_LIST_FOREACH(copy, l, eo_child) 716 EINA_LIST_FOREACH(copy, l, eo_child)
776 { 717 {
777 child = eo_data_get(eo_child, EVAS_OBJ_CLASS); 718 child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
778 ev->cur.canvas.x = point_x; 719 ev->cur.canvas = point;
779 ev->cur.canvas.y = point_y;
780 720
781 if (evas_object_is_in_output_rect(eo_child, child, 721 if (evas_object_is_in_output_rect(eo_child, child,
782 ev->cur.canvas.x, 722 ev->cur.canvas.x,
@@ -815,7 +755,7 @@ _evas_event_source_multi_move_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event
815 eina_list_free(ins); 755 eina_list_free(ins);
816 } 756 }
817 757
818 ev->cur = cur_pos; 758 ev->cur.canvas = canvas;
819} 759}
820 760
821static void 761static void
@@ -825,15 +765,12 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_
825 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 765 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
826 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 766 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
827 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 767 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
828 Evas_Point output = ev->output;
829 Evas_Coord_Point canvas = ev->canvas; 768 Evas_Coord_Point canvas = ev->canvas;
830 769
831 if (obj->delete_me || src->delete_me || e->is_frozen) return; 770 if (obj->delete_me || src->delete_me || e->is_frozen) return;
832 771
833 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y); 772 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
834 773
835 ev->output.x = ev->canvas.x;
836 ev->output.y = ev->canvas.y;
837 Eina_List *ins = NULL; 774 Eina_List *ins = NULL;
838 if (src->is_smart) 775 if (src->is_smart)
839 { 776 {
@@ -844,8 +781,7 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_
844 else 781 else
845 ins = eina_list_append(ins, eo_src); 782 ins = eina_list_append(ins, eo_src);
846 783
847 Evas_Coord point_x = ev->canvas.x; 784 Evas_Coord_Point point = ev->canvas;
848 Evas_Coord point_y = ev->canvas.y;
849 Eina_List *l; 785 Eina_List *l;
850 Evas_Object *eo_child; 786 Evas_Object *eo_child;
851 EINA_LIST_FOREACH(ins, l, eo_child) 787 EINA_LIST_FOREACH(ins, l, eo_child)
@@ -857,8 +793,7 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_
857 if(child->mouse_in) continue; 793 if(child->mouse_in) continue;
858 794
859 child->mouse_in = 1; 795 child->mouse_in = 1;
860 ev->canvas.x = point_x; 796 ev->canvas = point;
861 ev->canvas.y = point_y;
862 _evas_event_framespace_adjust(eo_child, &ev->canvas.x, 797 _evas_event_framespace_adjust(eo_child, &ev->canvas.x,
863 &ev->canvas.y); 798 &ev->canvas.y);
864 799
@@ -875,7 +810,6 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_
875 src->proxy.src_event_in = ins; 810 src->proxy.src_event_in = ins;
876 811
877 ev->canvas = canvas; 812 ev->canvas = canvas;
878 ev->output = output;
879} 813}
880 814
881static void 815static void
@@ -885,21 +819,16 @@ _evas_event_source_mouse_out_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_
885 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 819 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
886 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS); 820 Evas_Object_Protected_Data *src = eo_data_get(eo_src, EVAS_OBJ_CLASS);
887 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 821 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
888 Evas_Point output = ev->output;
889 Evas_Coord_Point canvas = ev->canvas; 822 Evas_Coord_Point canvas = ev->canvas;
890 823
891 if (obj->delete_me || src->delete_me || e->is_frozen) return; 824 if (obj->delete_me || src->delete_me || e->is_frozen) return;
892 825
893 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y); 826 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
894 827
895 ev->output.x = ev->canvas.x;
896 ev->output.y = ev->canvas.y;
897
898 Eina_List *l; 828 Eina_List *l;
899 Evas_Object *eo_child; 829 Evas_Object *eo_child;
900 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in); 830 Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in);
901 Evas_Coord point_x = ev->canvas.x; 831 Evas_Coord_Point point = ev->canvas;
902 Evas_Coord point_y = ev->canvas.y;
903 832
904 EINA_LIST_FOREACH(copy, l, eo_child) 833 EINA_LIST_FOREACH(copy, l, eo_child)
905 { 834 {
@@ -910,8 +839,7 @@ _evas_event_source_mouse_out_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_
910 839
911 if (child->delete_me) continue; 840 if (child->delete_me) continue;
912 841
913 ev->canvas.x = point_x; 842 ev->canvas = point;
914 ev->canvas.y = point_y;
915 843
916 _evas_event_framespace_adjust(eo_child, &ev->canvas.x, &ev->canvas.y); 844 _evas_event_framespace_adjust(eo_child, &ev->canvas.x, &ev->canvas.y);
917 _evas_event_havemap_adjust(eo_child, child, &ev->canvas.x, 845 _evas_event_havemap_adjust(eo_child, child, &ev->canvas.x,
@@ -925,7 +853,6 @@ _evas_event_source_mouse_out_events(Evas_Object *eo_obj, Evas *eo_e, Evas_Event_
925 src->proxy.src_event_in = eina_list_free(src->proxy.src_event_in); 853 src->proxy.src_event_in = eina_list_free(src->proxy.src_event_in);
926 854
927 ev->canvas = canvas; 855 ev->canvas = canvas;
928 ev->output = output;
929} 856}
930 857
931static Eina_List * 858static Eina_List *