aboutsummaryrefslogtreecommitdiffstats
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
parentEvas: Simplify eo event mechanism (diff)
downloadefl-29d5be9e5e5d52d8eb8ead9eac77746258763ccb.tar.gz
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 https://phab.enlightenment.org/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 *
e = event;
lookup = _ecore_event_window_match(e->event_window);
if (!lookup) return ECORE_CALLBACK_PASS_ON;
- if (lookup->direct &&
- lookup->direct(lookup->window, ECORE_EVENT_MOUSE_MOVE, e))
- return ECORE_CALLBACK_PASS_ON;
if (e->multi.device == 0)
{
_ecore_event_evas_push_mouse_move(e);
ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
- if (lookup->move_mouse)
- lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
- else
- evas_event_input_mouse_move(lookup->evas, e->x, e->y, e->timestamp,
- NULL);
+ if (!lookup->direct ||
+ !lookup->direct(lookup->window, ECORE_EVENT_MOUSE_MOVE, e))
+ {
+ if (lookup->move_mouse)
+ lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
+ else
+ evas_event_input_mouse_move(lookup->evas, e->x, e->y, e->timestamp,
+ NULL);
+ }
}
else
{
- if (lookup->move_multi)
- lookup->move_multi(lookup->window, e->multi.device,
- e->x, e->y, e->multi.radius,
- e->multi.radius_x, e->multi.radius_y,
- e->multi.pressure, e->multi.angle,
- e->multi.x, e->multi.y, e->timestamp);
- else
- evas_event_input_multi_move(lookup->evas, e->multi.device,
- e->x, e->y, e->multi.radius,
- e->multi.radius_x, e->multi.radius_y,
- e->multi.pressure, e->multi.angle,
- e->multi.x, e->multi.y, e->timestamp,
- NULL);
+ if (!lookup->direct ||
+ !lookup->direct(lookup->window, ECORE_EVENT_MOUSE_MOVE, e))
+ {
+ if (lookup->move_multi)
+ lookup->move_multi(lookup->window, e->multi.device,
+ e->x, e->y, e->multi.radius,
+ e->multi.radius_x, e->multi.radius_y,
+ e->multi.pressure, e->multi.angle,
+ e->multi.x, e->multi.y, e->timestamp);
+ else
+ evas_event_input_multi_move(lookup->evas, e->multi.device,
+ e->x, e->y, e->multi.radius,
+ e->multi.radius_x, e->multi.radius_y,
+ e->multi.pressure, e->multi.angle,
+ e->multi.x, e->multi.y, e->timestamp,
+ NULL);
+ }
}
return ECORE_CALLBACK_PASS_ON;
}