diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-06-02 10:58:06 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-06-02 14:19:18 +0900 |
commit | 29d5be9e5e5d52d8eb8ead9eac77746258763ccb (patch) | |
tree | 29ab368dfb7e394bb493d6e3ee24c87841cead60 /src/lib/ecore_input_evas/ecore_input_evas.c | |
parent | 0505a729e2bf46c99d1574f60e46b26ad9c3446c (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 '')
-rw-r--r-- | src/lib/ecore_input_evas/ecore_input_evas.c | 47 |
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 | } |