Evas Mouse events are used for mouse and also the first touch point.
In order not to lose touch information of first touch,
we add extended members to Evas_Event_Mouse_XXXwq structs.
The values of these members come from Ecore_Event_Mouse_XXX.
Signed-off-by: Duna Oh <duna.oh@samsung.com>
Change-Id: I66f4abdb733c1aec1b34c86b24e183f2706751ae
* @since 1.1
*/
EAPI void ecore_evas_input_event_register(Ecore_Evas *ee);
+
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+/**
+ * @brief Register an @c Ecore_Evas to receive events through ecore_input_evas.
+ *
+ * @param ee The @c Ecore_Evas handle.
+ *
+ * This function calls ecore_event_window_register_with_multi() with the @p ee as its @c
+ * id argument, @c window argument, and uses its @c Evas too. It is useful when
+ * no @c window information is available on a given @c Ecore_Evas backend.
+ *
+ * @see ecore_evas_input_event_unregister()
+ * @since 1.1
+ */
+EAPI void ecore_evas_input_event_register_with_multi(Ecore_Evas *ee);
+//
+
/**
* @brief Unregister an @c Ecore_Evas receiving events through ecore_input_evas.
*
evas_event_input_mouse_move(ee->evas, y, ee->w + fh - x - 1, timestamp, NULL);
}
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+EAPI void
+_ecore_evas_mouse_move_with_multi_info_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp, double radius, double radius_x, double radius_y, double pressure, double angle)
+{
+ int fx, fy, fw, fh;
+ ee->mouse.x = x;
+ ee->mouse.y = y;
+
+ evas_output_framespace_get(ee->evas, &fx, &fy, &fw, &fh);
+
+ if (ee->prop.cursor.object)
+ {
+ evas_object_show(ee->prop.cursor.object);
+ if (ee->rotation == 0)
+ evas_object_move(ee->prop.cursor.object,
+ x - fx - ee->prop.cursor.hot.x,
+ y - fy - ee->prop.cursor.hot.y);
+ else if (ee->rotation == 90)
+ evas_object_move(ee->prop.cursor.object,
+ ee->h + fw - y - fx - 1 - ee->prop.cursor.hot.x,
+ x - fy - ee->prop.cursor.hot.y);
+ else if (ee->rotation == 180)
+ evas_object_move(ee->prop.cursor.object,
+ ee->w + fw - x - fx - 1 - ee->prop.cursor.hot.x,
+ ee->h + fh - y - fy - 1 - ee->prop.cursor.hot.y);
+ else if (ee->rotation == 270)
+ evas_object_move(ee->prop.cursor.object,
+ y - fx - ee->prop.cursor.hot.x,
+ ee->w + fh - x - fy - 1 - ee->prop.cursor.hot.y);
+ }
+ if (ee->rotation == 0)
+ evas_event_input_mouse_move_with_multi_info(ee->evas, x, y, timestamp, NULL, radius, radius_x, radius_y, pressure, angle);
+ else if (ee->rotation == 90)
+ evas_event_input_mouse_move_with_multi_info(ee->evas, ee->h + fw - y - 1, x, timestamp, NULL, radius, radius_x, radius_y, pressure, angle);
+ else if (ee->rotation == 180)
+ evas_event_input_mouse_move_with_multi_info(ee->evas, ee->w + fw - x - 1, ee->h + fh - y - 1, timestamp, NULL, radius, radius_x, radius_y, pressure, angle);
+ else if (ee->rotation == 270)
+ evas_event_input_mouse_move_with_multi_info(ee->evas, y, ee->w + fh - x - 1, timestamp, NULL, radius, radius_x, radius_y, pressure, angle);
+}
+//
+
EAPI void
_ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
int x, int y,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
}
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+EAPI void
+ecore_evas_input_event_register_with_multi(Ecore_Evas *ee)
+{
+ ecore_event_window_register_with_multi((Ecore_Window)ee, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+}
+//
+
EAPI void
ecore_evas_input_event_unregister(Ecore_Evas *ee)
{
EAPI void _ecore_evas_free(Ecore_Evas *ee);
EAPI void _ecore_evas_idle_timeout_update(Ecore_Evas *ee);
EAPI void _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp);
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+EAPI void _ecore_evas_mouse_move_with_multi_info_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp,
+ double radius, double radius_x, double radius_y, double pressure, double angle);
+//
EAPI void _ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
int x, int y,
double radius,
typedef void (*Ecore_Event_Multi_Move_Cb)(void *window, int device, int x, int y, double radius, double radius_x, double radius_y, double pressure, double angle, double mx, double my, unsigned int timestamp);
typedef void (*Ecore_Event_Multi_Down_Cb)(void *window, int device, int x, int y, double radius, double radius_x, double radius_y, double pressure, double angle, double mx, double my, Evas_Button_Flags flags, unsigned int timestamp);
typedef void (*Ecore_Event_Multi_Up_Cb)(void *window, int device, int x, int y, double radius, double radius_x, double radius_y, double pressure, double angle, double mx, double my, Evas_Button_Flags flags, unsigned int timestamp);
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+typedef void (*Ecore_Event_Mouse_Move_With_Multi_Cb)(void *window, int x, int y, unsigned int timestamp, double radius, double radius_x, double radius_y, double pressure, double angle);
+//
EAPI int ecore_event_evas_init(void);
EAPI int ecore_event_evas_shutdown(void);
EAPI Eina_Bool ecore_event_evas_device_del(void *data, int type, void *event);
EAPI void ecore_event_window_register(Ecore_Window id, void *window, Evas *evas, Ecore_Event_Mouse_Move_Cb move_mouse, Ecore_Event_Multi_Move_Cb move_multi, Ecore_Event_Multi_Down_Cb down_multi, Ecore_Event_Multi_Up_Cb up_multi);
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+EAPI void ecore_event_window_register_with_multi(Ecore_Window id, void *window, Evas *evas, Ecore_Event_Mouse_Move_With_Multi_Cb move_mouse, Ecore_Event_Multi_Move_Cb move_multi, Ecore_Event_Multi_Down_Cb down_multi, Ecore_Event_Multi_Up_Cb up_multi);
+//
EAPI void ecore_event_window_unregister(Ecore_Window id);
EAPI void *ecore_event_window_match(Ecore_Window id);
EAPI void ecore_event_window_ignore_events(Ecore_Window id, int ignore_event);
Ecore_Event_Multi_Move_Cb move_multi;
Ecore_Event_Multi_Down_Cb down_multi;
Ecore_Event_Multi_Up_Cb up_multi;
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ Ecore_Event_Mouse_Move_With_Multi_Cb move_mouse_with_multi;
+//
int ignore_event;
};
evas_key_lock_add(evas, "Scroll_Lock");
}
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+EAPI void
+ecore_event_window_register_with_multi(Ecore_Window id, void *window, Evas *evas,
+ Ecore_Event_Mouse_Move_With_Multi_Cb move_mouse_with_multi,
+ Ecore_Event_Multi_Move_Cb move_multi,
+ Ecore_Event_Multi_Down_Cb down_multi,
+ Ecore_Event_Multi_Up_Cb up_multi)
+{
+ Ecore_Input_Window *w;
+
+ w = calloc(1, sizeof(Ecore_Input_Window));
+ if (!w) return;
+
+ w->evas = evas;
+ w->window = window;
+ w->move_mouse_with_multi = move_mouse_with_multi;
+ w->move_multi = move_multi;
+ w->down_multi = down_multi;
+ w->up_multi = up_multi;
+ w->ignore_event = 0;
+
+ eina_hash_add(_window_hash, &id, w);
+
+ evas_key_modifier_add(evas, "Shift");
+ evas_key_modifier_add(evas, "Control");
+ evas_key_modifier_add(evas, "Alt");
+ evas_key_modifier_add(evas, "Meta");
+ evas_key_modifier_add(evas, "Hyper");
+ evas_key_modifier_add(evas, "Super");
+ evas_key_modifier_add(evas, "AltGr");
+ evas_key_lock_add(evas, "Caps_Lock");
+ evas_key_lock_add(evas, "Num_Lock");
+ evas_key_lock_add(evas, "Scroll_Lock");
+}
+//
+
EAPI void
ecore_event_window_unregister(Ecore_Window id)
{
ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
if (press == ECORE_DOWN)
{
+#if 0
evas_event_feed_mouse_down(lookup->evas, e->buttons, flags,
e->timestamp, NULL);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ evas_event_feed_mouse_down_with_multi_info(lookup->evas, e->buttons, flags,
+ e->timestamp, NULL,
+ e->multi.radius, e->multi.radius_x, e->multi.radius_y,
+ e->multi.pressure, e->multi.angle);
+ //
}
else
{
+#if 0
evas_event_feed_mouse_up(lookup->evas, e->buttons, flags,
- e->timestamp, NULL);
+ e->timestamp, NULL);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ evas_event_feed_mouse_up_with_multi_info(lookup->evas, e->buttons, flags,
+ e->timestamp, NULL,
+ e->multi.radius, e->multi.radius_x, e->multi.radius_y,
+ e->multi.pressure, e->multi.angle);
+ //
}
}
else
_ecore_event_evas_push_mouse_move(e);
ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
+#if 0
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);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ if (lookup->move_mouse_with_multi)
+ lookup->move_mouse_with_multi(lookup->window, e->x, e->y, e->timestamp,
+ e->multi.radius, e->multi.radius_x, e->multi.radius_y, e->multi.pressure, e->multi.angle);
+ else if (lookup->move_mouse)
+ lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
+ else
+ evas_event_input_mouse_move_with_multi_info(lookup->evas, e->x, e->y, e->timestamp, NULL,
+ e->multi.radius, e->multi.radius_x, e->multi.radius_y,
+ e->multi.pressure, e->multi.angle);
+ //
}
else
{
break;
}
+#if 0
lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ if (lookup->move_mouse_with_multi)
+ lookup->move_mouse_with_multi(lookup->window, e->x, e->y, e->timestamp, 0, 0, 0, 0, 0);
+ else if (lookup->move_mouse)
+ lookup->move_mouse(lookup->window, e->x, e->y, e->timestamp);
+ //
evas_device_pop(lookup->evas);
return ECORE_CALLBACK_PASS_ON;
}
Evas_Event_Flags event_flags;
Evas_Device *dev;
Evas_Object *event_src; /**< The Evas Object which actually triggered the event, used in cases of proxy event propagation */
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ double radius;
+ double radius_x, radius_y;
+ double pressure, angle;
+ //
};
struct _Evas_Event_Mouse_Up /** Mouse button release event */
Evas_Event_Flags event_flags;
Evas_Device *dev;
Evas_Object *event_src; /**< The Evas Object which actually triggered the event, used in cases of proxy event propagation */
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ double radius;
+ double radius_x, radius_y;
+ double pressure, angle;
+ //
};
struct _Evas_Event_Mouse_In /** Mouse enter event */
Evas_Event_Flags event_flags;
Evas_Device *dev;
Evas_Object *event_src; /**< The Evas Object which actually triggered the event, used in cases of proxy event propagation */
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ double radius;
+ double radius_x, radius_y;
+ double pressure, angle;
+ //
};
struct _Evas_Event_Mouse_Wheel /** Wheel event */
@in data: const(void)*; [[Data for canvas.]]
}
}
+ event_feed_mouse_down_with_multi_info {
+ [[Mouse down event feed.
+
+ This function will set some evas properties that is necessary
+ when the mouse button is pressed. It prepares information to
+ be treated by the callback function.
+ ]]
+ params {
+ @in b: int; [[The button number.]]
+ @in flags: Evas.Button_Flags; [[Evas button flags.]]
+ @in timestamp: uint; [[The timestamp of the mouse up event.]]
+ @in data: const(void)*; [[The data for canvas.]]
+ @in rad: double; [[The average of major and minor radius]]
+ @in radx: double; [[The major radius of touch point]]
+ @in rady: double; [[The minor radius of touch point]]
+ @in pres: double; [[The pressure of touch]]
+ @in ang: double; [[The angle relative to perpenficular(0.0), in degrees ]]
+ }
+ }
+ event_feed_mouse_up_with_multi_info {
+ [[Mouse up event feed.
+
+ This function will set some evas properties that is necessary
+ when the mouse button is released. It prepares information to
+ be treated by the callback function.
+ ]]
+ params {
+ @in b: int; [[The button number.]]
+ @in flags: Evas.Button_Flags; [[Evas button flags.]]
+ @in timestamp: uint; [[The timestamp of the mouse up event.]]
+ @in data: const(void)*; [[The data for canvas.]]
+ @in rad: double; [[The average of major and minor radius]]
+ @in radx: double; [[The major radius of touch point]]
+ @in rady: double; [[The minor radius of touch point]]
+ @in pres: double; [[The pressure of touch]]
+ @in ang: double; [[The angle relative to perpenficular(0.0), in degrees ]]
+ }
+ }
+ event_input_mouse_move_with_multi_info {
+ [[Mouse move event feed from input.
+
+ Similar to the @.event_feed_mouse_move, this function will
+ inform Evas about mouse move events which were received by
+ the input system, relative to the 0,0 of the window, not to the
+ canvas 0,0. It will take care of doing any special transformation
+ like adding the framespace offset to the mouse event.
+
+ @since 1.8
+ ]]
+ params {
+ @in x: int; [[The horizontal position of the mouse pointer
+ relative to the 0,0 of the window/surface.]]
+ @in y: int; [[The vertical position of the mouse pointer
+ relative to the 0,0 of the window/surface.]]
+ @in timestamp: uint; [[The timestamp of the mouse move event.]]
+ @in data: const(void)*; [[The data for canvas.]]
+ @in rad: double; [[The average of major and minor radius]]
+ @in radx: double; [[The major radius of touch point]]
+ @in rady: double; [[The minor radius of touch point]]
+ @in pres: double; [[The pressure of touch]]
+ @in ang: double; [[The angle relative to perpenficular(0.0), in degrees ]]
+ }
+ }
}
implements {
Eo.Base.constructor;
}
EOLIAN void
-_evas_canvas_event_feed_mouse_down(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data)
+_canvas_event_feed_mouse_down_internal(Eo *eo_e, void *_pd, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data, double rad, double radx, double rady, double pres, double ang)
{
Eina_List *l, *copy;
Evas_Event_Mouse_Down ev;
Evas_Object *eo_obj;
int addgrab = 0;
int event_id = 0;
+ Evas_Public_Data *e = _pd;
INF("ButtonEvent:down time=%u x=%d y=%d button=%d downs=%d", timestamp, e->pointer.x, e->pointer.y, b, e->pointer.downs);
if ((b < 1) || (b > 32)) return;
ev.event_flags = e->default_event_flags;
ev.dev = _evas_device_top_get(eo_e);
if (ev.dev) _evas_device_ref(ev.dev);
+ ev.radius = rad;
+ ev.radius_x = radx;
+ ev.radius_y = rady;
+ ev.pressure = pres;
+ ev.angle = ang;
_evas_walk(e);
/* append new touch point to the touch point list */
_evas_unwalk(e);
}
+EOLIAN void
+_evas_canvas_event_feed_mouse_down(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data)
+{
+ _canvas_event_feed_mouse_down_internal(eo_e, e, b, flags, timestamp, data, 0, 0, 0, 0, 0);
+}
+
+EOLIAN void
+_evas_canvas_event_feed_mouse_down_with_multi_info(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data, double rad, double radx, double rady, double pres, double ang)
+{
+ _canvas_event_feed_mouse_down_internal(eo_e, e, b, flags, timestamp, data, rad, radx, rady, pres, ang);
+}
+
static int
_post_up_handle(Evas *eo_e, unsigned int timestamp, const void *data)
{
}
EOLIAN void
-_evas_canvas_event_feed_mouse_up(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data)
+_canvas_event_feed_mouse_up_internal(Eo *eo_e, void *_pd, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data, double rad, double radx, double rady, double pres, double ang)
{
Eina_List *l, *copy;
+ Evas_Public_Data *e = _pd;
INF("ButtonEvent:up time=%u x=%d y=%d button=%d downs=%d", timestamp, e->pointer.x, e->pointer.y, b, e->pointer.downs);
if ((b < 1) || (b > 32)) return;
ev.event_flags = e->default_event_flags;
ev.dev = _evas_device_top_get(eo_e);
if (ev.dev) _evas_device_ref(ev.dev);
+ ev.radius = rad;
+ ev.radius_x = radx;
+ ev.radius_y = rady;
+ ev.pressure = pres;
+ ev.angle = ang;
_evas_walk(e);
/* update released touch point */
}
EOLIAN void
+_evas_canvas_event_feed_mouse_up(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data)
+{
+ _canvas_event_feed_mouse_up_internal(eo_e, e, b, flags, timestamp, data, 0, 0, 0, 0, 0);
+}
+
+EOLIAN void
+_evas_canvas_event_feed_mouse_up_with_multi_info(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data, double rad, double radx, double rady, double pres, double ang)
+{
+ _canvas_event_feed_mouse_up_internal(eo_e, e, b, flags, timestamp, data, rad, radx, rady, pres, ang);
+}
+
+EOLIAN void
_evas_canvas_event_feed_mouse_cancel(Eo *eo_e, Evas_Public_Data *e, unsigned int timestamp, const void *data)
{
Evas_Coord_Touch_Point *point;
}
static void
-_canvas_event_feed_mouse_move_internal(Eo *eo_e, void *_pd, int x, int y, unsigned int timestamp, const void *data)
+_canvas_event_feed_mouse_move_internal(Eo *eo_e, void *_pd, int x, int y, unsigned int timestamp, const void *data, double rad, double radx, double rady, double pres, double ang)
{
Evas_Public_Data *e = _pd;
Evas_Object *nogrep_obj = NULL;
ev.event_flags = e->default_event_flags;
ev.dev = _evas_device_top_get(eo_e);
if (ev.dev) _evas_device_ref(ev.dev);
+ ev.radius = rad;
+ ev.radius_x = radx;
+ ev.radius_y = rady;
+ ev.pressure = pres;
+ ev.angle = ang;
copy = evas_event_list_copy(e->pointer.object.in);
EINA_LIST_FOREACH(copy, l, eo_obj)
{
ev.event_flags = e->default_event_flags;
ev.dev = _evas_device_top_get(eo_e);
if (ev.dev) _evas_device_ref(ev.dev);
+ ev.radius = rad;
+ ev.radius_x = radx;
+ ev.radius_y = rady;
+ ev.pressure = pres;
+ ev.angle = ang;
ev2.buttons = e->pointer.button;
ev2.output.x = e->pointer.x;
ev.event_flags = e->default_event_flags;
ev.dev = _evas_device_top_get(eo_e);
if (ev.dev) _evas_device_ref(ev.dev);
+ ev.radius = rad;
+ ev.radius_x = radx;
+ ev.radius_y = rady;
+ ev.pressure = pres;
+ ev.angle = ang;
ev2.buttons = e->pointer.button;
ev2.output.x = e->pointer.x;
EOLIAN void
_evas_canvas_event_input_mouse_move(Eo *eo_e, Evas_Public_Data *e, int x, int y, unsigned int timestamp, const void *data)
{
- _canvas_event_feed_mouse_move_internal(eo_e, e, x - e->framespace.x, y - e->framespace.y, timestamp, data);
+ _canvas_event_feed_mouse_move_internal(eo_e, e, x - e->framespace.x, y - e->framespace.y, timestamp, data, 0, 0, 0, 0, 0);
+}
+
+EOLIAN void
+_evas_canvas_event_input_mouse_move_with_multi_info(Eo *eo_e, Evas_Public_Data *e, int x, int y, unsigned int timestamp, const void *data, double rad, double radx, double rady, double pres, double ang)
+{
+ _canvas_event_feed_mouse_move_internal(eo_e, e, x - e->framespace.x, y - e->framespace.y, timestamp, data, rad, radx, rady, pres, ang);
}
EOLIAN void
_evas_canvas_event_feed_mouse_move(Eo *eo_e, Evas_Public_Data *e, int x, int y, unsigned int timestamp, const void *data)
{
- _canvas_event_feed_mouse_move_internal(eo_e, e, x, y, timestamp, data);
+ _canvas_event_feed_mouse_move_internal(eo_e, e, x, y, timestamp, data, 0, 0, 0, 0, 0);
}
EOLIAN void
void _canvas_event_feed_mouse_wheel(Eo *e, void *_pd, va_list *list);
void _canvas_event_input_mouse_move(Eo *e, void *_pd, va_list *list);
void _canvas_event_feed_mouse_move(Eo *e, void *_pd, va_list *list);
+// TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+void _canvas_event_feed_mouse_down_with_multi_info(Eo *e, void *_pd, va_list *list);
+void _canvas_event_feed_mouse_up_with_multi_info(Eo *e, void *_pd, va_list *list);
+void _canvas_event_input_mouse_move_with_multi_info(Eo *e, void *_pd, va_list *list);
+//
void _canvas_event_feed_mouse_in(Eo *e, void *_pd, va_list *list);
void _canvas_event_feed_mouse_out(Eo *e, void *_pd, va_list *list);
void _canvas_event_feed_multi_down(Eo *e, void *_pd, va_list *list);
ee->engine.func->fn_render = _ecore_evas_cocoa_render;
_ecore_evas_register(ee);
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
printf("Ecore Evas returned : %p\n", ee);
ee->prop.window = einfo->info.buffer_id;
_ecore_evas_register(ee);
+#if 0
ecore_evas_input_event_register(ee);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_evas_input_event_register_with_multi(ee);
+ //
ecore_drm_device_window_set(dev, ee->prop.window);
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
return ee;
ee->prop.window = einfo->info.buffer_id;
_ecore_evas_register(ee);
+#if 0
ecore_evas_input_event_register(ee);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_evas_input_event_register_with_multi(ee);
+ //
ecore_drm_device_window_set(dev, ee->prop.window);
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
TRACE_EFL_END();
return ee;
return NULL;
}
+#if 0
ecore_evas_input_event_register(ee);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_evas_input_event_register_with_multi(ee);
+ //
ee->engine.func->fn_render = _ecore_evas_fb_render;
_ecore_evas_register(ee);
+#if 0
ecore_event_window_register(1, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(1, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
return ee;
}
_ecore_evas_psl1ght_init(w, h);
+#if 0
ecore_event_window_register(0, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(0, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
ee->engine.func->fn_render = _ecore_evas_psl1ght_render;
_ecore_evas_register(ee);
_ecore_evas_sdl_init(w, h);
+#if 0
ecore_event_window_register(SDL_GetWindowID(swd->w), ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(SDL_GetWindowID(swd->w), ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
SDL_SetWindowData(swd->w, "_Ecore_Evas", ee);
SDL_ShowCursor(SDL_ENABLE);
ee->engine.func->fn_render = _ecore_evas_wl_common_render;
_ecore_evas_register(ee);
+#if 0
ecore_evas_input_event_register(ee);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_evas_input_event_register_with_multi(ee);
+ //
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
return ee;
ee->engine.func->fn_render = _ecore_evas_wl_common_render;
_ecore_evas_register(ee);
+#if 0
ecore_evas_input_event_register(ee);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_evas_input_event_register_with_multi(ee);
+ //
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
return ee;
ee->engine.func->fn_render = _ecore_evas_win32_render;
_ecore_evas_register(ee);
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
return ee;
}
evas_damage_rectangle_add(ee->evas, 0, 0, ee->req.w, ee->req.h);
ecore_x_window_shape_mask_set(ee->prop.window, 0);
ecore_x_input_multi_select(ee->prop.window);
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
if (ee->prop.borderless)
ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
if (ee->visible || ee->should_be_visible)
evas_damage_rectangle_add(ee->evas, 0, 0, ee->req.w, ee->req.h);
// ecore_x_window_shape_mask_set(ee->prop.window, 0);
ecore_x_input_multi_select(ee->prop.window);
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
if (ee->prop.borderless)
ecore_x_mwm_borderless_set(ee->prop.window, ee->prop.borderless);
if (ee->visible || ee->should_be_visible)
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_x_input_multi_select(ee->prop.window);
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
return ee;
}
*winp = win;
edata->win_extra = eina_list_append(edata->win_extra, winp);
ecore_x_input_multi_select(win);
+#if 0
ecore_event_window_register(win, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(win, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
}
}
#endif
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_x_input_multi_select(ee->prop.window);
+#if 0
ecore_event_window_register(ee->prop.window, ee, ee->evas,
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+#endif
+ // TIZEN_ONLY(20160429): add multi_info(radius, pressure and angle) to Evas_Event_Mouse_XXX
+ ecore_event_window_register_with_multi(ee->prop.window, ee, ee->evas,
+ (Ecore_Event_Mouse_Move_With_Multi_Cb)_ecore_evas_mouse_move_with_multi_info_process,
+ (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
+ (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
+ (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
+ //
return ee;
}