ecore_timer_add(IDLE_FLUSH_TIME, _ecore_evas_cb_idle_flush, ee);
}
-EAPI void
-_ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp)
+static void
+_ecore_evas_mouse_move_process_internal(Ecore_Evas *ee, int x, int y, unsigned int timestamp, Eina_Bool feed)
{
int fx, fy, fw, fh;
ee->mouse.x = x;
y - fx - ee->prop.cursor.hot.x,
ee->w + fh - x - fy - 1 - ee->prop.cursor.hot.y);
}
+ if (!feed) return;
if (ee->rotation == 0)
evas_event_input_mouse_move(ee->evas, x, y, timestamp, NULL);
else if (ee->rotation == 90)
}
EAPI void
+_ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp)
+{
+ _ecore_evas_mouse_move_process_internal(ee, x, y, timestamp, EINA_TRUE);
+}
+
+EAPI void
_ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
int x, int y,
double radius,
Evas *e = ee->evas;
Eina_Bool processed;
+ _ecore_evas_mouse_move_process_internal(ee, info->x, info->y, info->timestamp, EINA_FALSE);
+
/* Unused information:
* same_screen
* root.{x,y}
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;
}