From: Duna Oh Date: Fri, 22 Apr 2016 06:36:01 +0000 (+0900) Subject: evas: add radius, radius_x, radius_y, pressure, and angle to mouse event structs X-Git-Tag: submit/tizen/20160502.041901^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=27b09caf26bfb1136f0707cbb9d86da63490347f;p=platform%2Fupstream%2Fefl.git evas: add radius, radius_x, radius_y, pressure, and angle to mouse event structs 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 Change-Id: I66f4abdb733c1aec1b34c86b24e183f2706751ae --- diff --git a/src/lib/ecore_evas/Ecore_Evas.h b/src/lib/ecore_evas/Ecore_Evas.h index 5d2b5f4..adcbd89 100644 --- a/src/lib/ecore_evas/Ecore_Evas.h +++ b/src/lib/ecore_evas/Ecore_Evas.h @@ -2312,6 +2312,23 @@ EAPI Eina_Bool ecore_evas_manual_render_get(const Ecore_Evas *ee); * @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. * diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 856fb0d..b2d25b0 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3368,6 +3368,47 @@ _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timest 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, @@ -3575,6 +3616,18 @@ ecore_evas_input_event_register(Ecore_Evas *ee) (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) { diff --git a/src/lib/ecore_evas/ecore_evas_private.h b/src/lib/ecore_evas/ecore_evas_private.h index 256eca5..a01a18e 100644 --- a/src/lib/ecore_evas/ecore_evas_private.h +++ b/src/lib/ecore_evas/ecore_evas_private.h @@ -373,6 +373,10 @@ EAPI void _ecore_evas_register(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, diff --git a/src/lib/ecore_input_evas/Ecore_Input_Evas.h b/src/lib/ecore_input_evas/Ecore_Input_Evas.h index 184d0c8..2543259 100644 --- a/src/lib/ecore_input_evas/Ecore_Input_Evas.h +++ b/src/lib/ecore_input_evas/Ecore_Input_Evas.h @@ -37,6 +37,9 @@ typedef void (*Ecore_Event_Mouse_Move_Cb)(void *window, int x, int y, unsigned i 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); @@ -55,6 +58,9 @@ EAPI Eina_Bool ecore_event_evas_device_add(void *data, int type, void *event); 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); diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c b/src/lib/ecore_input_evas/ecore_input_evas.c index fd44a7a..606e6cc 100644 --- a/src/lib/ecore_input_evas/ecore_input_evas.c +++ b/src/lib/ecore_input_evas/ecore_input_evas.c @@ -22,6 +22,9 @@ struct _Ecore_Input_Window 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; }; @@ -353,6 +356,42 @@ ecore_event_window_register(Ecore_Window id, void *window, Evas *evas, 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) { @@ -531,13 +570,29 @@ _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press pr 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 @@ -600,11 +655,24 @@ ecore_event_evas_mouse_move(void *data EINA_UNUSED, int type EINA_UNUSED, void * _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 { @@ -670,7 +738,15 @@ _ecore_event_evas_mouse_io(Ecore_Event_Mouse_IO *e, Ecore_Event_IO io) 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; } diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h index ff09f13..2da81fb 100755 --- a/src/lib/evas/Evas_Common.h +++ b/src/lib/evas/Evas_Common.h @@ -517,6 +517,11 @@ struct _Evas_Event_Mouse_Down /** Mouse button press 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_Up /** Mouse button release event */ @@ -535,6 +540,11 @@ 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 */ @@ -583,6 +593,11 @@ struct _Evas_Event_Mouse_Move /** Mouse move 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 */ diff --git a/src/lib/evas/canvas/evas_canvas.eo b/src/lib/evas/canvas/evas_canvas.eo index c3fd2d5..4bc5128 100644 --- a/src/lib/evas/canvas/evas_canvas.eo +++ b/src/lib/evas/canvas/evas_canvas.eo @@ -1646,6 +1646,69 @@ class Evas.Canvas (Eo.Base, Evas.Common_Interface) @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; diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c index 1b5bf97..6db98c3 100644 --- a/src/lib/evas/canvas/evas_events.c +++ b/src/lib/evas/canvas/evas_events.c @@ -1025,13 +1025,14 @@ evas_event_thaw_eval(Evas *eo_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 *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; @@ -1058,6 +1059,11 @@ _evas_canvas_event_feed_mouse_down(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Bu 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 */ @@ -1121,6 +1127,18 @@ _evas_canvas_event_feed_mouse_down(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Bu _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) { @@ -1247,9 +1265,10 @@ _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; @@ -1282,6 +1301,11 @@ _evas_canvas_event_feed_mouse_up(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Butt 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 */ @@ -1344,6 +1368,18 @@ _evas_canvas_event_feed_mouse_up(Eo *eo_e, Evas_Public_Data *e, int b, Evas_Butt } 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; @@ -1430,7 +1466,7 @@ _evas_canvas_event_feed_mouse_wheel(Eo *eo_e, Evas_Public_Data *e, int direction } 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; @@ -1480,6 +1516,11 @@ _canvas_event_feed_mouse_move_internal(Eo *eo_e, void *_pd, int x, int y, unsign 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) { @@ -1605,6 +1646,11 @@ _canvas_event_feed_mouse_move_internal(Eo *eo_e, void *_pd, int x, int y, unsign 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; @@ -1771,6 +1817,11 @@ nogrep: 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; @@ -1922,13 +1973,19 @@ nogrep: 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 diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 9d19f8a..285d98b 100755 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1662,6 +1662,11 @@ void _canvas_event_feed_mouse_cancel(Eo *e, void *_pd, va_list *list); 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); diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c index 5fe7a73..a21c288 100644 --- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c +++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c @@ -791,11 +791,20 @@ ecore_evas_cocoa_new_internal(Ecore_Cocoa_Window *parent EINA_UNUSED, int x, int 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); diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c index 71bff1e..0b3d6b5 100755 --- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c +++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c @@ -314,14 +314,28 @@ ecore_evas_drm_new_internal(const char *device, unsigned int parent EINA_UNUSED, 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; @@ -485,14 +499,28 @@ ecore_evas_gl_drm_new_internal(const char *device, unsigned int parent EINA_UNUS 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; diff --git a/src/modules/ecore_evas/engines/fb/ecore_evas_fb.c b/src/modules/ecore_evas/engines/fb/ecore_evas_fb.c index 8042d0c..d1732a9 100644 --- a/src/modules/ecore_evas/engines/fb/ecore_evas_fb.c +++ b/src/modules/ecore_evas/engines/fb/ecore_evas_fb.c @@ -732,15 +732,29 @@ ecore_evas_fb_new_internal(const char *disp_name, int rotation, int w, int h) 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; } diff --git a/src/modules/ecore_evas/engines/psl1ght/ecore_evas_psl1ght.c b/src/modules/ecore_evas/engines/psl1ght/ecore_evas_psl1ght.c index c323264..de16b58 100644 --- a/src/modules/ecore_evas/engines/psl1ght/ecore_evas_psl1ght.c +++ b/src/modules/ecore_evas/engines/psl1ght/ecore_evas_psl1ght.c @@ -536,11 +536,19 @@ ecore_evas_psl1ght_new_internal(const char *name, int w, int h) _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); diff --git a/src/modules/ecore_evas/engines/sdl/ecore_evas_sdl.c b/src/modules/ecore_evas/engines/sdl/ecore_evas_sdl.c index 0c14c89..5f627eb 100644 --- a/src/modules/ecore_evas/engines/sdl/ecore_evas_sdl.c +++ b/src/modules/ecore_evas/engines/sdl/ecore_evas_sdl.c @@ -707,11 +707,20 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu _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); diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index c1e7f21..8003f41 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -326,13 +326,27 @@ ecore_evas_wayland_egl_options_new_internal(const char *disp_name, unsigned int 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; diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c index fa4646b..e4c52f0 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c @@ -284,13 +284,27 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, 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; diff --git a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c index 3883334..dcb45e5 100644 --- a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c +++ b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c @@ -1369,11 +1369,20 @@ _ecore_evas_win32_new_internal(int (*_ecore_evas_engine_backend_init)(Ecore_Evas 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; } diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index b750c68..06b8ae6 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -2607,11 +2607,20 @@ _alpha_do(Ecore_Evas *ee, int alpha) 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) @@ -2761,11 +2770,20 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) 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) @@ -4086,11 +4104,20 @@ ecore_evas_software_x11_new_internal(const char *disp_name, Ecore_X_Window paren 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; } @@ -4403,11 +4430,20 @@ _ecore_evas_software_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window w *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 @@ -4537,11 +4573,20 @@ ecore_evas_gl_x11_options_new_internal(const char *disp_name, Ecore_X_Window par 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; }