summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--src/lib/ecore_evas/ecore_evas.c16
-rw-r--r--src/lib/ecore_input_evas/ecore_input_evas.c4
-rw-r--r--src/lib/evas/Evas_Eo.h52
-rw-r--r--src/lib/evas/Evas_Legacy.h5
-rw-r--r--src/lib/evas/canvas/evas_events.c187
-rw-r--r--src/lib/evas/canvas/evas_main.c8
-rw-r--r--src/lib/evas/include/evas_private.h4
8 files changed, 229 insertions, 51 deletions
diff --git a/ChangeLog b/ChangeLog
index 7ace6c4255..8d75d61499 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12013-05-07 Rafael Antognolli
2
3 * Evas: Added evas_event_input_multi_up/down().
4
12013-05-06 Rafael Antognolli 52013-05-06 Rafael Antognolli
2 6
3 * Ecore/Wayland: Add ecore_wl_window_alpha_set/get(). 7 * Ecore/Wayland: Add ecore_wl_window_alpha_set/get().
diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c
index 0b8b03a007..eaccf72f74 100644
--- a/src/lib/ecore_evas/ecore_evas.c
+++ b/src/lib/ecore_evas/ecore_evas.c
@@ -2660,7 +2660,7 @@ _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
2660 unsigned int timestamp) 2660 unsigned int timestamp)
2661{ 2661{
2662 if (ee->rotation == 0) 2662 if (ee->rotation == 0)
2663 evas_event_feed_multi_down(ee->evas, device, 2663 evas_event_input_multi_down(ee->evas, device,
2664 x, y, 2664 x, y,
2665 radius, 2665 radius,
2666 radius_x, radius_y, 2666 radius_x, radius_y,
@@ -2669,7 +2669,7 @@ _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
2669 mx, my, 2669 mx, my,
2670 flags, timestamp, NULL); 2670 flags, timestamp, NULL);
2671 else if (ee->rotation == 90) 2671 else if (ee->rotation == 90)
2672 evas_event_feed_multi_down(ee->evas, device, 2672 evas_event_input_multi_down(ee->evas, device,
2673 ee->h - y - 1, x, 2673 ee->h - y - 1, x,
2674 radius, 2674 radius,
2675 radius_y, radius_x, 2675 radius_y, radius_x,
@@ -2678,7 +2678,7 @@ _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
2678 ee->h - my - 1, mx, 2678 ee->h - my - 1, mx,
2679 flags, timestamp, NULL); 2679 flags, timestamp, NULL);
2680 else if (ee->rotation == 180) 2680 else if (ee->rotation == 180)
2681 evas_event_feed_multi_down(ee->evas, device, 2681 evas_event_input_multi_down(ee->evas, device,
2682 ee->w - x - 1, ee->h - y - 1, 2682 ee->w - x - 1, ee->h - y - 1,
2683 radius, 2683 radius,
2684 radius_x, radius_y, 2684 radius_x, radius_y,
@@ -2687,7 +2687,7 @@ _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
2687 ee->w - mx - 1, ee->h - my - 1, 2687 ee->w - mx - 1, ee->h - my - 1,
2688 flags, timestamp, NULL); 2688 flags, timestamp, NULL);
2689 else if (ee->rotation == 270) 2689 else if (ee->rotation == 270)
2690 evas_event_feed_multi_down(ee->evas, device, 2690 evas_event_input_multi_down(ee->evas, device,
2691 y, ee->w - x - 1, 2691 y, ee->w - x - 1,
2692 radius, 2692 radius,
2693 radius_y, radius_x, 2693 radius_y, radius_x,
@@ -2709,7 +2709,7 @@ _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
2709 unsigned int timestamp) 2709 unsigned int timestamp)
2710{ 2710{
2711 if (ee->rotation == 0) 2711 if (ee->rotation == 0)
2712 evas_event_feed_multi_up(ee->evas, device, 2712 evas_event_input_multi_up(ee->evas, device,
2713 x, y, 2713 x, y,
2714 radius, 2714 radius,
2715 radius_x, radius_y, 2715 radius_x, radius_y,
@@ -2718,7 +2718,7 @@ _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
2718 mx, my, 2718 mx, my,
2719 flags, timestamp, NULL); 2719 flags, timestamp, NULL);
2720 else if (ee->rotation == 90) 2720 else if (ee->rotation == 90)
2721 evas_event_feed_multi_up(ee->evas, device, 2721 evas_event_input_multi_up(ee->evas, device,
2722 ee->h - y - 1, x, 2722 ee->h - y - 1, x,
2723 radius, 2723 radius,
2724 radius_y, radius_x, 2724 radius_y, radius_x,
@@ -2727,7 +2727,7 @@ _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
2727 ee->h - my - 1, mx, 2727 ee->h - my - 1, mx,
2728 flags, timestamp, NULL); 2728 flags, timestamp, NULL);
2729 else if (ee->rotation == 180) 2729 else if (ee->rotation == 180)
2730 evas_event_feed_multi_up(ee->evas, device, 2730 evas_event_input_multi_up(ee->evas, device,
2731 ee->w - x - 1, ee->h - y - 1, 2731 ee->w - x - 1, ee->h - y - 1,
2732 radius, 2732 radius,
2733 radius_x, radius_y, 2733 radius_x, radius_y,
@@ -2736,7 +2736,7 @@ _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
2736 ee->w - mx - 1, ee->h - my - 1, 2736 ee->w - mx - 1, ee->h - my - 1,
2737 flags, timestamp, NULL); 2737 flags, timestamp, NULL);
2738 else if (ee->rotation == 270) 2738 else if (ee->rotation == 270)
2739 evas_event_feed_multi_up(ee->evas, device, 2739 evas_event_input_multi_up(ee->evas, device,
2740 y, ee->w - x - 1, 2740 y, ee->w - x - 1,
2741 radius, 2741 radius,
2742 radius_y, radius_x, 2742 radius_y, radius_x,
diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c b/src/lib/ecore_input_evas/ecore_input_evas.c
index 2e2bbe0f7c..57ed890957 100644
--- a/src/lib/ecore_input_evas/ecore_input_evas.c
+++ b/src/lib/ecore_input_evas/ecore_input_evas.c
@@ -382,7 +382,7 @@ _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press pr
382 e->multi.x, e->multi.y, flags, 382 e->multi.x, e->multi.y, flags,
383 e->timestamp); 383 e->timestamp);
384 else 384 else
385 evas_event_feed_multi_down(lookup->evas, e->multi.device, 385 evas_event_input_multi_down(lookup->evas, e->multi.device,
386 e->x, e->y, e->multi.radius, 386 e->x, e->y, e->multi.radius,
387 e->multi.radius_x, e->multi.radius_y, 387 e->multi.radius_x, e->multi.radius_y,
388 e->multi.pressure, e->multi.angle, 388 e->multi.pressure, e->multi.angle,
@@ -399,7 +399,7 @@ _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, Ecore_Event_Press pr
399 e->multi.x, e->multi.y, flags, 399 e->multi.x, e->multi.y, flags,
400 e->timestamp); 400 e->timestamp);
401 else 401 else
402 evas_event_feed_multi_up(lookup->evas, e->multi.device, 402 evas_event_input_multi_up(lookup->evas, e->multi.device,
403 e->x, e->y, e->multi.radius, 403 e->x, e->y, e->multi.radius,
404 e->multi.radius_x, e->multi.radius_y, 404 e->multi.radius_x, e->multi.radius_y,
405 e->multi.pressure, e->multi.angle, 405 e->multi.pressure, e->multi.angle,
diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
index 8345981973..3c0d152995 100644
--- a/src/lib/evas/Evas_Eo.h
+++ b/src/lib/evas/Evas_Eo.h
@@ -195,8 +195,10 @@ enum
195 EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT, 195 EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT,
196 EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN, 196 EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN,
197 EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_UP, 197 EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_UP,
198 EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_MOVE,
199 EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_MOVE, 198 EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_MOVE,
199 EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_DOWN,
200 EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_UP,
201 EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_MOVE,
200 EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_DOWN, 202 EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_DOWN,
201 EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_UP, 203 EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_UP,
202 EVAS_CANVAS_SUB_ID_EVENT_FEED_HOLD, 204 EVAS_CANVAS_SUB_ID_EVENT_FEED_HOLD,
@@ -953,6 +955,30 @@ enum
953#define evas_canvas_event_feed_mouse_out(timestamp, data) EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT), EO_TYPECHECK(unsigned int, timestamp), EO_TYPECHECK(const void *, data) 955#define evas_canvas_event_feed_mouse_out(timestamp, data) EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT), EO_TYPECHECK(unsigned int, timestamp), EO_TYPECHECK(const void *, data)
954 956
955/** 957/**
958 * @def evas_canvas_event_input_multi_down
959 * @since 1.8
960 *
961 * No description supplied by the EAPI.
962 *
963 * @param[in] d
964 * @param[in] x
965 * @param[in] y
966 * @param[in] rad
967 * @param[in] radx
968 * @param[in] rady
969 * @param[in] pres
970 * @param[in] ang
971 * @param[in] fx
972 * @param[in] fy
973 * @param[in] flags
974 * @param[in] timestamp
975 * @param[in] data
976 *
977 * @see evas_event_input_multi_down
978 */
979#define evas_canvas_event_input_multi_down(d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, data) EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_DOWN), EO_TYPECHECK(int, d), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(double, rad), EO_TYPECHECK(double, radx), EO_TYPECHECK(double, rady), EO_TYPECHECK(double, pres), EO_TYPECHECK(double, ang), EO_TYPECHECK(double, fx), EO_TYPECHECK(double, fy), EO_TYPECHECK(Evas_Button_Flags, flags), EO_TYPECHECK(unsigned int, timestamp), EO_TYPECHECK(const void *, data)
980
981/**
956 * @def evas_canvas_event_feed_multi_down 982 * @def evas_canvas_event_feed_multi_down
957 * @since 1.8 983 * @since 1.8
958 * 984 *
@@ -977,6 +1003,30 @@ enum
977#define evas_canvas_event_feed_multi_down(d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, data) EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN), EO_TYPECHECK(int, d), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(double, rad), EO_TYPECHECK(double, radx), EO_TYPECHECK(double, rady), EO_TYPECHECK(double, pres), EO_TYPECHECK(double, ang), EO_TYPECHECK(double, fx), EO_TYPECHECK(double, fy), EO_TYPECHECK(Evas_Button_Flags, flags), EO_TYPECHECK(unsigned int, timestamp), EO_TYPECHECK(const void *, data) 1003#define evas_canvas_event_feed_multi_down(d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, data) EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN), EO_TYPECHECK(int, d), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(double, rad), EO_TYPECHECK(double, radx), EO_TYPECHECK(double, rady), EO_TYPECHECK(double, pres), EO_TYPECHECK(double, ang), EO_TYPECHECK(double, fx), EO_TYPECHECK(double, fy), EO_TYPECHECK(Evas_Button_Flags, flags), EO_TYPECHECK(unsigned int, timestamp), EO_TYPECHECK(const void *, data)
978 1004
979/** 1005/**
1006 * @def evas_canvas_event_input_multi_up
1007 * @since 1.8
1008 *
1009 * No description supplied by the EAPI.
1010 *
1011 * @param[in] d
1012 * @param[in] x
1013 * @param[in] y
1014 * @param[in] rad
1015 * @param[in] radx
1016 * @param[in] rady
1017 * @param[in] pres
1018 * @param[in] ang
1019 * @param[in] fx
1020 * @param[in] fy
1021 * @param[in] flags
1022 * @param[in] timestamp
1023 * @param[in] data
1024 *
1025 * @see evas_event_input_multi_up
1026 */
1027#define evas_canvas_event_input_multi_up(d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, data) EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_UP), EO_TYPECHECK(int, d), EO_TYPECHECK(int, x), EO_TYPECHECK(int, y), EO_TYPECHECK(double, rad), EO_TYPECHECK(double, radx), EO_TYPECHECK(double, rady), EO_TYPECHECK(double, pres), EO_TYPECHECK(double, ang), EO_TYPECHECK(double, fx), EO_TYPECHECK(double, fy), EO_TYPECHECK(Evas_Button_Flags, flags), EO_TYPECHECK(unsigned int, timestamp), EO_TYPECHECK(const void *, data)
1028
1029/**
980 * @def evas_canvas_event_feed_multi_up 1030 * @def evas_canvas_event_feed_multi_up
981 * @since 1.8 1031 * @since 1.8
982 * 1032 *
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 8456900aca..fb6f9a7aee 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -1168,11 +1168,14 @@ EAPI void evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *
1168 * 1168 *
1169 */ 1169 */
1170EAPI void evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data) EINA_ARG_NONNULL(1); 1170EAPI void evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data) EINA_ARG_NONNULL(1);
1171
1171EAPI void evas_event_feed_multi_down(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data); 1172EAPI void evas_event_feed_multi_down(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data);
1172EAPI void evas_event_feed_multi_up(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data); 1173EAPI void evas_event_feed_multi_up(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data);
1173EAPI void evas_event_input_multi_move(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, unsigned int timestamp, const void *data);
1174EAPI void evas_event_feed_multi_move(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, unsigned int timestamp, const void *data); 1174EAPI void evas_event_feed_multi_move(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, unsigned int timestamp, const void *data);
1175 1175
1176EAPI void evas_event_input_multi_down(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data);
1177EAPI void evas_event_input_multi_up(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp, const void *data);
1178EAPI void evas_event_input_multi_move(Evas *e, int d, int x, int y, double rad, double radx, double rady, double pres, double ang, double fx, double fy, unsigned int timestamp, const void *data);
1176/** 1179/**
1177 * Mouse cancel event feed. 1180 * Mouse cancel event feed.
1178 * 1181 *
diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c
index 10ee07a8ce..02c37144cd 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -2154,8 +2154,8 @@ _canvas_event_feed_mouse_out(Eo *eo_e, void *_pd, va_list *list)
2154 _evas_unwalk(e); 2154 _evas_unwalk(e);
2155} 2155}
2156 2156
2157EAPI void 2157static void
2158evas_event_feed_multi_down(Evas *eo_e, 2158_canvas_event_feed_multi_down_internal(Evas *eo_e, void *_pd,
2159 int d, int x, int y, 2159 int d, int x, int y,
2160 double rad, double radx, double rady, 2160 double rad, double radx, double rady,
2161 double pres, double ang, 2161 double pres, double ang,
@@ -2163,30 +2163,6 @@ evas_event_feed_multi_down(Evas *eo_e,
2163 Evas_Button_Flags flags, unsigned int timestamp, 2163 Evas_Button_Flags flags, unsigned int timestamp,
2164 const void *data) 2164 const void *data)
2165{ 2165{
2166 MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
2167 return;
2168 MAGIC_CHECK_END();
2169
2170 eo_do(eo_e, evas_canvas_event_feed_multi_down(d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, data));
2171}
2172
2173void
2174_canvas_event_feed_multi_down(Eo *eo_e, void *_pd, va_list *list)
2175{
2176 int d = va_arg(*list, int);
2177 int x = va_arg(*list, int);
2178 int y = va_arg(*list, int);
2179 double rad = va_arg(*list, double);
2180 double radx = va_arg(*list, double);
2181 double rady = va_arg(*list, double);
2182 double pres = va_arg(*list, double);
2183 double ang = va_arg(*list, double);
2184 double fx = va_arg(*list, double);
2185 double fy = va_arg(*list, double);
2186 Evas_Button_Flags flags = va_arg(*list, Evas_Button_Flags);
2187 unsigned int timestamp = va_arg(*list, unsigned int);
2188 const void *data = va_arg(*list, const void *);
2189
2190 Evas_Public_Data *e = _pd; 2166 Evas_Public_Data *e = _pd;
2191 Eina_List *l, *copy; 2167 Eina_List *l, *copy;
2192 Evas_Event_Multi_Down ev; 2168 Evas_Event_Multi_Down ev;
@@ -2222,7 +2198,7 @@ _canvas_event_feed_multi_down(Eo *eo_e, void *_pd, va_list *list)
2222 ev.event_flags = e->default_event_flags; 2198 ev.event_flags = e->default_event_flags;
2223 ev.dev = _evas_device_top_get(eo_e); 2199 ev.dev = _evas_device_top_get(eo_e);
2224 if (ev.dev) _evas_device_ref(ev.dev); 2200 if (ev.dev) _evas_device_ref(ev.dev);
2225 2201
2226 _evas_walk(e); 2202 _evas_walk(e);
2227 /* append new touch point to the touch point list */ 2203 /* append new touch point to the touch point list */
2228 _evas_touch_point_append(eo_e, d, x, y); 2204 _evas_touch_point_append(eo_e, d, x, y);
@@ -2268,23 +2244,66 @@ _canvas_event_feed_multi_down(Eo *eo_e, void *_pd, va_list *list)
2268} 2244}
2269 2245
2270EAPI void 2246EAPI void
2271evas_event_feed_multi_up(Evas *eo_e, 2247evas_event_input_multi_down(Evas *eo_e,
2272 int d, int x, int y, 2248 int d, int x, int y,
2273 double rad, double radx, double rady, 2249 double rad, double radx, double rady,
2274 double pres, double ang, 2250 double pres, double ang,
2275 double fx, double fy, 2251 double fx, double fy,
2276 Evas_Button_Flags flags, unsigned int timestamp, 2252 Evas_Button_Flags flags, unsigned int timestamp,
2277 const void *data) 2253 const void *data)
2278{ 2254{
2279 MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS); 2255 MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
2280 return; 2256 return;
2281 MAGIC_CHECK_END(); 2257 MAGIC_CHECK_END();
2282 2258
2283 eo_do(eo_e, evas_canvas_event_feed_multi_up(d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, data)); 2259 eo_do(eo_e, evas_canvas_event_input_multi_down(d, x, y, rad, radx, rady,
2260 pres, ang, fx, fy, flags,
2261 timestamp, data));
2284} 2262}
2285 2263
2286void 2264void
2287_canvas_event_feed_multi_up(Eo *eo_e, void *_pd, va_list *list) 2265_canvas_event_input_multi_down(Eo *eo_e, void *_pd, va_list *list)
2266{
2267 int d = va_arg(*list, int);
2268 int x = va_arg(*list, int);
2269 int y = va_arg(*list, int);
2270 double rad = va_arg(*list, double);
2271 double radx = va_arg(*list, double);
2272 double rady = va_arg(*list, double);
2273 double pres = va_arg(*list, double);
2274 double ang = va_arg(*list, double);
2275 double fx = va_arg(*list, double);
2276 double fy = va_arg(*list, double);
2277 Evas_Button_Flags flags = va_arg(*list, Evas_Button_Flags);
2278 unsigned int timestamp = va_arg(*list, unsigned int);
2279 const void *data = va_arg(*list, const void *);
2280 Evas_Public_Data *e = _pd;
2281
2282 _canvas_event_feed_multi_down_internal(eo_e, _pd, d,
2283 x - e->framespace.x,
2284 y - e->framespace.y,
2285 rad, radx, rady, pres, ang,
2286 fx, fy, flags, timestamp, data);
2287}
2288
2289EAPI void
2290evas_event_feed_multi_down(Evas *eo_e,
2291 int d, int x, int y,
2292 double rad, double radx, double rady,
2293 double pres, double ang,
2294 double fx, double fy,
2295 Evas_Button_Flags flags, unsigned int timestamp,
2296 const void *data)
2297{
2298 MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
2299 return;
2300 MAGIC_CHECK_END();
2301
2302 eo_do(eo_e, evas_canvas_event_feed_multi_down(d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, data));
2303}
2304
2305void
2306_canvas_event_feed_multi_down(Eo *eo_e, void *_pd, va_list *list)
2288{ 2307{
2289 int d = va_arg(*list, int); 2308 int d = va_arg(*list, int);
2290 int x = va_arg(*list, int); 2309 int x = va_arg(*list, int);
@@ -2300,6 +2319,21 @@ _canvas_event_feed_multi_up(Eo *eo_e, void *_pd, va_list *list)
2300 unsigned int timestamp = va_arg(*list, unsigned int); 2319 unsigned int timestamp = va_arg(*list, unsigned int);
2301 const void *data = va_arg(*list, const void *); 2320 const void *data = va_arg(*list, const void *);
2302 2321
2322 _canvas_event_feed_multi_down_internal(eo_e, _pd,
2323 d, x, y, rad, radx, rady, pres, ang,
2324 fx, fy, flags, timestamp, data);
2325}
2326
2327static void
2328_canvas_event_feed_multi_up_internal(Evas *eo_e, void *_pd,
2329 int d, int x, int y,
2330 double rad, double radx, double rady,
2331 double pres, double ang,
2332 double fx, double fy,
2333 Evas_Button_Flags flags,
2334 unsigned int timestamp,
2335 const void *data)
2336{
2303 Evas_Public_Data *e = _pd; 2337 Evas_Public_Data *e = _pd;
2304 Eina_List *l, *copy; 2338 Eina_List *l, *copy;
2305 Evas_Event_Multi_Up ev; 2339 Evas_Event_Multi_Up ev;
@@ -2373,6 +2407,87 @@ _canvas_event_feed_multi_up(Eo *eo_e, void *_pd, va_list *list)
2373 _evas_unwalk(e); 2407 _evas_unwalk(e);
2374} 2408}
2375 2409
2410EAPI void
2411evas_event_input_multi_up(Evas *eo_e,
2412 int d, int x, int y,
2413 double rad, double radx, double rady,
2414 double pres, double ang,
2415 double fx, double fy,
2416 Evas_Button_Flags flags, unsigned int timestamp,
2417 const void *data)
2418{
2419 MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
2420 return;
2421 MAGIC_CHECK_END();
2422
2423 eo_do(eo_e, evas_canvas_event_input_multi_up(d, x, y, rad, radx, rady, pres,
2424 ang, fx, fy, flags, timestamp,
2425 data));
2426}
2427
2428void
2429_canvas_event_input_multi_up(Eo *eo_e, void *_pd, va_list *list)
2430{
2431 int d = va_arg(*list, int);
2432 int x = va_arg(*list, int);
2433 int y = va_arg(*list, int);
2434 double rad = va_arg(*list, double);
2435 double radx = va_arg(*list, double);
2436 double rady = va_arg(*list, double);
2437 double pres = va_arg(*list, double);
2438 double ang = va_arg(*list, double);
2439 double fx = va_arg(*list, double);
2440 double fy = va_arg(*list, double);
2441 Evas_Button_Flags flags = va_arg(*list, Evas_Button_Flags);
2442 unsigned int timestamp = va_arg(*list, unsigned int);
2443 const void *data = va_arg(*list, const void *);
2444 Evas_Public_Data *e = _pd;
2445
2446 _canvas_event_feed_multi_up_internal(eo_e, _pd, d,
2447 x - e->framespace.x,
2448 y - e->framespace.y,
2449 rad, radx, rady,
2450 pres, ang, fx, fy, flags, timestamp,
2451 data);
2452}
2453
2454EAPI void
2455evas_event_feed_multi_up(Evas *eo_e,
2456 int d, int x, int y,
2457 double rad, double radx, double rady,
2458 double pres, double ang,
2459 double fx, double fy,
2460 Evas_Button_Flags flags, unsigned int timestamp,
2461 const void *data)
2462{
2463 MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
2464 return;
2465 MAGIC_CHECK_END();
2466
2467 eo_do(eo_e, evas_canvas_event_feed_multi_up(d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, data));
2468}
2469
2470void
2471_canvas_event_feed_multi_up(Eo *eo_e, void *_pd, va_list *list)
2472{
2473 int d = va_arg(*list, int);
2474 int x = va_arg(*list, int);
2475 int y = va_arg(*list, int);
2476 double rad = va_arg(*list, double);
2477 double radx = va_arg(*list, double);
2478 double rady = va_arg(*list, double);
2479 double pres = va_arg(*list, double);
2480 double ang = va_arg(*list, double);
2481 double fx = va_arg(*list, double);
2482 double fy = va_arg(*list, double);
2483 Evas_Button_Flags flags = va_arg(*list, Evas_Button_Flags);
2484 unsigned int timestamp = va_arg(*list, unsigned int);
2485 const void *data = va_arg(*list, const void *);
2486
2487 _canvas_event_feed_multi_up_internal(eo_e, _pd, d, x, y, rad, radx, rady,
2488 pres, ang, fx, fy, flags, timestamp, data);
2489}
2490
2376static void 2491static void
2377_canvas_event_feed_multi_move_internal(Eo *eo_e, void *_pd, int d, int x, 2492_canvas_event_feed_multi_move_internal(Eo *eo_e, void *_pd, int d, int x,
2378 int y, double rad, double radx, 2493 int y, double rad, double radx,
diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c
index cabd48fb96..4cedf77e3c 100644
--- a/src/lib/evas/canvas/evas_main.c
+++ b/src/lib/evas/canvas/evas_main.c
@@ -1037,8 +1037,10 @@ _class_constructor(Eo_Class *klass)
1037 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT), _canvas_event_feed_mouse_out), 1037 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT), _canvas_event_feed_mouse_out),
1038 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN), _canvas_event_feed_multi_down), 1038 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN), _canvas_event_feed_multi_down),
1039 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_UP), _canvas_event_feed_multi_up), 1039 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_UP), _canvas_event_feed_multi_up),
1040 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_MOVE), _canvas_event_input_multi_move),
1041 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_MOVE), _canvas_event_feed_multi_move), 1040 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_MOVE), _canvas_event_feed_multi_move),
1041 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_DOWN), _canvas_event_input_multi_down),
1042 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_UP), _canvas_event_input_multi_up),
1043 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_MOVE), _canvas_event_input_multi_move),
1042 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_DOWN), _canvas_event_feed_key_down), 1044 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_DOWN), _canvas_event_feed_key_down),
1043 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_UP), _canvas_event_feed_key_up), 1045 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_UP), _canvas_event_feed_key_up),
1044 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_HOLD), _canvas_event_feed_hold), 1046 EO_OP_FUNC(EVAS_CANVAS_ID(EVAS_CANVAS_SUB_ID_EVENT_FEED_HOLD), _canvas_event_feed_hold),
@@ -1139,8 +1141,10 @@ static const Eo_Op_Description op_desc[] = {
1139 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT, "Mouse out event feed."), 1141 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT, "Mouse out event feed."),
1140 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN, "Multi down event feed."), 1142 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN, "Multi down event feed."),
1141 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_UP, "Multi up event feed."), 1143 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_UP, "Multi up event feed."),
1142 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_MOVE, "Multi move event input."),
1143 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_MOVE, "Multi move event feed."), 1144 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_MOVE, "Multi move event feed."),
1145 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_DOWN, "Multi down event input."),
1146 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_UP, "Multi up event input."),
1147 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_INPUT_MULTI_MOVE, "Multi move event input."),
1144 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_DOWN, "Key down event feed"), 1148 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_DOWN, "Key down event feed"),
1145 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_UP, "Key up event feed"), 1149 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_UP, "Key up event feed"),
1146 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_HOLD, "Hold event feed"), 1150 EO_OP_DESCRIPTION(EVAS_CANVAS_SUB_ID_EVENT_FEED_HOLD, "Hold event feed"),
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 01a556e335..d0df9df2a0 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1108,8 +1108,10 @@ void _canvas_event_feed_mouse_in(Eo *e, void *_pd, va_list *list);
1108void _canvas_event_feed_mouse_out(Eo *e, void *_pd, va_list *list); 1108void _canvas_event_feed_mouse_out(Eo *e, void *_pd, va_list *list);
1109void _canvas_event_feed_multi_down(Eo *e, void *_pd, va_list *list); 1109void _canvas_event_feed_multi_down(Eo *e, void *_pd, va_list *list);
1110void _canvas_event_feed_multi_up(Eo *e, void *_pd, va_list *list); 1110void _canvas_event_feed_multi_up(Eo *e, void *_pd, va_list *list);
1111void _canvas_event_input_multi_move(Eo *e, void *_pd, va_list *list);
1112void _canvas_event_feed_multi_move(Eo *e, void *_pd, va_list *list); 1111void _canvas_event_feed_multi_move(Eo *e, void *_pd, va_list *list);
1112void _canvas_event_input_multi_down(Eo *e, void *_pd, va_list *list);
1113void _canvas_event_input_multi_up(Eo *e, void *_pd, va_list *list);
1114void _canvas_event_input_multi_move(Eo *e, void *_pd, va_list *list);
1113void _canvas_event_feed_key_down(Eo *e, void *_pd, va_list *list); 1115void _canvas_event_feed_key_down(Eo *e, void *_pd, va_list *list);
1114void _canvas_event_feed_key_up(Eo *e, void *_pd, va_list *list); 1116void _canvas_event_feed_key_up(Eo *e, void *_pd, va_list *list);
1115void _canvas_event_feed_hold(Eo *e, void *_pd, va_list *list); 1117void _canvas_event_feed_hold(Eo *e, void *_pd, va_list *list);