summaryrefslogtreecommitdiff
path: root/src/lib/ecore_input_evas
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-06-02 10:58:06 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-06-02 14:19:18 +0900
commit29d5be9e5e5d52d8eb8ead9eac77746258763ccb (patch)
tree29ab368dfb7e394bb493d6e3ee24c87841cead60 /src/lib/ecore_input_evas
parent0505a729e2bf46c99d1574f60e46b26ad9c3446c (diff)
ecore_evas: Fix mouse inputs
Yup, I broke everything again. This time, mouse move inputs would not move the cursor, since I was bypassing the regular _ecore_evas_mouse_xxx callbacks. Fixes T3766
Diffstat (limited to 'src/lib/ecore_input_evas')
-rw-r--r--src/lib/ecore_input_evas/ecore_input_evas.c47
1 files changed, 26 insertions, 21 deletions
diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c b/src/lib/ecore_input_evas/ecore_input_evas.c
index c06b30d7a1..59bfc29cd6 100644
--- a/src/lib/ecore_input_evas/ecore_input_evas.c
+++ b/src/lib/ecore_input_evas/ecore_input_evas.c
@@ -599,34 +599,39 @@ ecore_event_evas_mouse_move(void *data EINA_UNUSED, int type EINA_UNUSED, void *
599 e = event; 599 e = event;
600 lookup = _ecore_event_window_match(e->event_window); 600 lookup = _ecore_event_window_match(e->event_window);
601 if (!lookup) return ECORE_CALLBACK_PASS_ON; 601 if (!lookup) return ECORE_CALLBACK_PASS_ON;
602 if (lookup->direct &&
603 lookup->direct(lookup->window, ECORE_EVENT_MOUSE_MOVE, e))
604 return ECORE_CALLBACK_PASS_ON;
605 if (e->multi.device == 0) 602 if (e->multi.device == 0)
606 { 603 {
607 _ecore_event_evas_push_mouse_move(e); 604 _ecore_event_evas_push_mouse_move(e);
608 ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers); 605 ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
609 if (lookup->move_mouse) 606 if (!lookup->direct ||
610 lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp); 607 !lookup->direct(lookup->window, ECORE_EVENT_MOUSE_MOVE, e))
611 else 608 {
612 evas_event_input_mouse_move(lookup->evas, e->x, e->y, e->timestamp, 609 if (lookup->move_mouse)
613 NULL); 610 lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
611 else
612 evas_event_input_mouse_move(lookup->evas, e->x, e->y, e->timestamp,
613 NULL);
614 }
614 } 615 }
615 else 616 else
616 { 617 {
617 if (lookup->move_multi) 618 if (!lookup->direct ||
618 lookup->move_multi(lookup->window, e->multi.device, 619 !lookup->direct(lookup->window, ECORE_EVENT_MOUSE_MOVE, e))
619 e->x, e->y, e->multi.radius, 620 {
620 e->multi.radius_x, e->multi.radius_y, 621 if (lookup->move_multi)
621 e->multi.pressure, e->multi.angle, 622 lookup->move_multi(lookup->window, e->multi.device,
622 e->multi.x, e->multi.y, e->timestamp); 623 e->x, e->y, e->multi.radius,
623 else 624 e->multi.radius_x, e->multi.radius_y,
624 evas_event_input_multi_move(lookup->evas, e->multi.device, 625 e->multi.pressure, e->multi.angle,
625 e->x, e->y, e->multi.radius, 626 e->multi.x, e->multi.y, e->timestamp);
626 e->multi.radius_x, e->multi.radius_y, 627 else
627 e->multi.pressure, e->multi.angle, 628 evas_event_input_multi_move(lookup->evas, e->multi.device,
628 e->multi.x, e->multi.y, e->timestamp, 629 e->x, e->y, e->multi.radius,
629 NULL); 630 e->multi.radius_x, e->multi.radius_y,
631 e->multi.pressure, e->multi.angle,
632 e->multi.x, e->multi.y, e->timestamp,
633 NULL);
634 }
630 } 635 }
631 return ECORE_CALLBACK_PASS_ON; 636 return ECORE_CALLBACK_PASS_ON;
632} 637}