summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-08-11 11:58:42 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-08-26 10:18:00 +0900
commit290413543da19c67c8458f61feb38beb0ae373d8 (patch)
tree1f7a806d728beb1e0eaefbc67ce6eb0dfa715339
parent0ef07d609518d3212715ff8e3ed679fbbdab0924 (diff)
evas events: Switch wheel event to the new type
For now this covers only the wheel event. Note: This patch also modifies evas map to use double in an internal function, rather than ints.
-rw-r--r--src/lib/efl/interfaces/efl_common_internal.h4
-rw-r--r--src/lib/evas/canvas/efl_event_key.c1
-rw-r--r--src/lib/evas/canvas/efl_event_pointer.c1
-rw-r--r--src/lib/evas/canvas/evas_callbacks.c8
-rw-r--r--src/lib/evas/canvas/evas_events.c161
-rw-r--r--src/lib/evas/canvas/evas_map.c10
-rw-r--r--src/lib/evas/include/evas_private.h4
7 files changed, 121 insertions, 68 deletions
diff --git a/src/lib/efl/interfaces/efl_common_internal.h b/src/lib/efl/interfaces/efl_common_internal.h
index 6f9e67094b..fcae220924 100644
--- a/src/lib/efl/interfaces/efl_common_internal.h
+++ b/src/lib/efl/interfaces/efl_common_internal.h
@@ -33,9 +33,7 @@ struct _Efl_Event_Pointer_Data
33 double radius, radius_x, radius_y; 33 double radius, radius_x, radius_y;
34 double pressure; 34 double pressure;
35 double angle; 35 double angle;
36 struct { 36 Eina_Vector2 cur, prev;
37 double x, y;
38 } cur, prev;
39 struct { 37 struct {
40 Efl_Orient dir; 38 Efl_Orient dir;
41 int z; 39 int z;
diff --git a/src/lib/evas/canvas/efl_event_key.c b/src/lib/evas/canvas/efl_event_key.c
index c54ef1a680..d5de7479ba 100644
--- a/src/lib/evas/canvas/efl_event_key.c
+++ b/src/lib/evas/canvas/efl_event_key.c
@@ -194,6 +194,7 @@ _efl_event_key_efl_event_dup(Eo *obj EINA_UNUSED, Efl_Event_Key_Data *pd)
194 ev->evas_done = 0; 194 ev->evas_done = 0;
195 ev->win_fed = 0; 195 ev->win_fed = 0;
196 ev->fake = 1; 196 ev->fake = 1;
197 ev->legacy = NULL;
197 198
198 return evt; 199 return evt;
199} 200}
diff --git a/src/lib/evas/canvas/efl_event_pointer.c b/src/lib/evas/canvas/efl_event_pointer.c
index f3f9597ed7..69881ddd7b 100644
--- a/src/lib/evas/canvas/efl_event_pointer.c
+++ b/src/lib/evas/canvas/efl_event_pointer.c
@@ -127,6 +127,7 @@ _efl_event_pointer_efl_event_dup(Eo *obj EINA_UNUSED, Efl_Event_Pointer_Data *pd
127 ev->evas_done = 0; 127 ev->evas_done = 0;
128 ev->win_fed = 0; 128 ev->win_fed = 0;
129 ev->fake = 1; 129 ev->fake = 1;
130 ev->legacy = NULL;
130 131
131 return evt; 132 return evt;
132} 133}
diff --git a/src/lib/evas/canvas/evas_callbacks.c b/src/lib/evas/canvas/evas_callbacks.c
index 7959079184..cdc20afc53 100644
--- a/src/lib/evas/canvas/evas_callbacks.c
+++ b/src/lib/evas/canvas/evas_callbacks.c
@@ -17,16 +17,16 @@ extern Eina_Hash* signals_hash_table;
17 * Evas events descriptions for Eo. 17 * Evas events descriptions for Eo.
18 */ 18 */
19#define DEFINE_EVAS_CALLBACKS(FUNC, LAST, ...) \ 19#define DEFINE_EVAS_CALLBACKS(FUNC, LAST, ...) \
20 static const Efl_Event_Description *FUNC(unsigned int index) \ 20 static const Efl_Event_Description *FUNC(unsigned int index) \
21 { \ 21 { \
22 static const Efl_Event_Description *internals[LAST] = { NULL }; \ 22 static const Efl_Event_Description *internals[LAST] = { NULL }; \
23 \ 23 \
24 if (index >= LAST) return NULL; \ 24 if (index >= LAST) return NULL; \
25 if (internals[0] == NULL) \ 25 if (internals[0] == NULL) \
26 { \ 26 { \
27 memcpy(internals, \ 27 memcpy(internals, \
28 ((const Efl_Event_Description*[]) { __VA_ARGS__ }), \ 28 ((const Efl_Event_Description*[]) { __VA_ARGS__ }), \
29 sizeof ((const Efl_Event_Description *[]) { __VA_ARGS__ })); \ 29 sizeof ((const Efl_Event_Description *[]) { __VA_ARGS__ })); \
30 } \ 30 } \
31 return internals[index]; \ 31 return internals[index]; \
32 } 32 }
diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c
index 1950d3be55..b3c584504a 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -26,9 +26,12 @@ _canvas_event_feed_multi_up_internal(Evas *eo_e, void *_pd, int d, int x, int y,
26 unsigned int timestamp, const void *data, 26 unsigned int timestamp, const void *data,
27 Efl_Event_Pointer *parent_pe); 27 Efl_Event_Pointer *parent_pe);
28 28
29/* FIXME: remove this */
29static void 30static void
30_evas_event_havemap_adjust(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj, Evas_Coord *x, Evas_Coord *y, Eina_Bool mouse_grabbed) 31_evas_event_havemap_adjust(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj, Evas_Coord *x, Evas_Coord *y, Eina_Bool mouse_grabbed)
31{ 32{
33 double tx = *x, ty = *y;
34
32 if (obj->smart.parent) 35 if (obj->smart.parent)
33 { 36 {
34 Evas_Object_Protected_Data *smart_parent_obj = efl_data_scope_get(obj->smart.parent, EFL_CANVAS_OBJECT_CLASS); 37 Evas_Object_Protected_Data *smart_parent_obj = efl_data_scope_get(obj->smart.parent, EFL_CANVAS_OBJECT_CLASS);
@@ -41,10 +44,34 @@ _evas_event_havemap_adjust(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protecte
41 44
42 //FIXME: Unless map_coords_get() supports grab mode and extrapolate coords 45 //FIXME: Unless map_coords_get() supports grab mode and extrapolate coords
43 //outside map, this should check the return value for outside case. 46 //outside map, this should check the return value for outside case.
44 if (evas_map_coords_get(obj->map->cur.map, *x, *y, x, y, mouse_grabbed)) 47 if (evas_map_coords_get(obj->map->cur.map, tx, ty, &tx, &ty, mouse_grabbed))
45 { 48 {
46 *x += obj->cur->geometry.x; 49 tx += obj->cur->geometry.x;
47 *y += obj->cur->geometry.y; 50 ty += obj->cur->geometry.y;
51 *x = tx;
52 *y = ty;
53 }
54}
55
56static void
57_evas_event_havemap_adjust_f(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj, Eina_Vector2 *point, Eina_Bool mouse_grabbed)
58{
59 if (obj->smart.parent)
60 {
61 Evas_Object_Protected_Data *smart_parent_obj = efl_data_scope_get(obj->smart.parent, EFL_CANVAS_OBJECT_CLASS);
62 _evas_event_havemap_adjust_f(obj->smart.parent, smart_parent_obj, point, mouse_grabbed);
63 }
64
65 if ((!obj->map->cur.usemap) || (!obj->map->cur.map) ||
66 (obj->map->cur.map->count != 4))
67 return;
68
69 //FIXME: Unless map_coords_get() supports grab mode and extrapolate coords
70 //outside map, this should check the return value for outside case.
71 if (evas_map_coords_get(obj->map->cur.map, point->x, point->y, &point->x, &point->y, mouse_grabbed))
72 {
73 point->x += obj->cur->geometry.x;
74 point->y += obj->cur->geometry.y;
48 } 75 }
49} 76}
50 77
@@ -431,6 +458,7 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in,
431 return in; 458 return in;
432} 459}
433 460
461/* FIXME: remove this */
434static void 462static void
435_transform_to_src_space(Evas_Object_Protected_Data *obj, Evas_Object_Protected_Data *src, Evas_Coord *x, Evas_Coord *y) 463_transform_to_src_space(Evas_Object_Protected_Data *obj, Evas_Object_Protected_Data *src, Evas_Coord *x, Evas_Coord *y)
436{ 464{
@@ -454,6 +482,28 @@ _transform_to_src_space(Evas_Object_Protected_Data *obj, Evas_Object_Protected_D
454} 482}
455 483
456static void 484static void
485_transform_to_src_space_f(Evas_Object_Protected_Data *obj, Evas_Object_Protected_Data *src, Eina_Vector2 *point)
486{
487 double obj_w = obj->cur->geometry.w, obj_h = obj->cur->geometry.h;
488 double src_w = src->cur->geometry.w, src_h = src->cur->geometry.h;
489 double tmp_x = point->x;
490 double tmp_y = point->y;
491
492 tmp_x -= obj->cur->geometry.x;
493 tmp_y -= obj->cur->geometry.y;
494
495 if (obj_w != src_w)
496 tmp_x = (tmp_x * (src_w / obj_w));
497 if (obj_h != src_h)
498 tmp_y = (tmp_y * (src_h / obj_h));
499
500 tmp_x += src->cur->geometry.x;
501 tmp_y += src->cur->geometry.y;
502 point->x = tmp_x;
503 point->y = tmp_y;
504}
505
506static void
457_evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e, 507_evas_event_source_mouse_down_events(Evas_Object *eo_obj, Evas *eo_e,
458 Evas_Event_Mouse_Down *ev, int event_id, 508 Evas_Event_Mouse_Down *ev, int event_id,
459 Efl_Event_Pointer *parent_pe) 509 Efl_Event_Pointer *parent_pe)
@@ -789,41 +839,39 @@ _evas_event_source_hold_events(Evas_Object *eo_obj, Evas *eo_e EINA_UNUSED, void
789 839
790static void 840static void
791_evas_event_source_wheel_events(Evas_Object *eo_obj, Evas *eo_e, 841_evas_event_source_wheel_events(Evas_Object *eo_obj, Evas *eo_e,
792 Evas_Event_Mouse_Wheel *ev, int event_id, 842 Efl_Event_Pointer *parent_ev, int event_id)
793 Efl_Event_Pointer *parent_pe)
794{ 843{
795 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 844 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
796 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj); 845 Evas_Object *eo_src = _evas_object_image_source_get(eo_obj);
797 Evas_Object_Protected_Data *src = efl_data_scope_get(eo_src, EFL_CANVAS_OBJECT_CLASS); 846 Evas_Object_Protected_Data *src = efl_data_scope_get(eo_src, EFL_CANVAS_OBJECT_CLASS);
798 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); 847 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
799 Evas_Coord_Point canvas = ev->canvas; 848 Evas_Object_Protected_Data *child;
800 Efl_Event_Pointer *pe = NULL; 849 Evas_Object *eo_child;
850 Eina_List *copy, *l;
851 Efl_Event_Pointer_Data *ev;
852 Efl_Event_Pointer *evt;
853 Eina_Vector2 point;
801 854
802 if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return; 855 if (obj->delete_me || src->delete_me || obj->layer->evas->is_frozen) return;
803 856
804 _transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y); 857 evt = efl_event_dup(parent_ev);
805 858 ev = efl_data_scope_get(evt, EFL_EVENT_POINTER_CLASS);
806 Eina_List *l; 859 _transform_to_src_space_f(obj, src, &ev->cur);
807 Evas_Object *eo_child; 860 point = ev->cur;
808 Evas_Object_Protected_Data *child;
809 Evas_Coord_Point point = ev->canvas;
810 861
811 Eina_List *copy = evas_event_list_copy(src->proxy->src_event_in); 862 copy = evas_event_list_copy(src->proxy->src_event_in);
812 EINA_LIST_FOREACH(copy, l, eo_child) 863 EINA_LIST_FOREACH(copy, l, eo_child)
813 { 864 {
814 if (src->delete_me) return; 865 if (src->delete_me) return;
815 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS); 866 child = efl_data_scope_get(eo_child, EFL_CANVAS_OBJECT_CLASS);
816 ev->canvas = point; 867 ev->cur = point;
817 _evas_event_havemap_adjust(eo_child, child, 868 _evas_event_havemap_adjust_f(eo_child, child, &ev->cur, child->mouse_grabbed);
818 &ev->canvas.x, 869 evas_object_event_callback_call(eo_child, child, EVAS_CALLBACK_MOUSE_WHEEL, NULL,
819 &ev->canvas.y, 870 event_id, EFL_EVENT_POINTER_WHEEL, evt);
820 child->mouse_grabbed);
821 EV_CALL(eo_child, child, EVAS_CALLBACK_MOUSE_WHEEL, ev, event_id, pe, parent_pe);
822 if (e->delete_me) break; 871 if (e->delete_me) break;
823 } 872 }
824 eina_list_free(copy); 873 eina_list_free(copy);
825 ev->canvas = canvas; 874 EV_DEL(evt);
826 EV_DEL(pe);
827} 875}
828 876
829static void 877static void
@@ -1677,36 +1725,32 @@ evas_event_feed_mouse_cancel(Eo *eo_e, unsigned int timestamp, const void *data)
1677} 1725}
1678 1726
1679static void 1727static void
1680_canvas_event_feed_mouse_wheel_internal(Eo *eo_e, int direction, int z, 1728_canvas_event_feed_mouse_wheel_internal(Eo *eo_e, Efl_Event_Pointer_Data *pe)
1681 unsigned int timestamp, const void *data,
1682 Efl_Event_Pointer *parent_pe)
1683{ 1729{
1684 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); 1730 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
1685 Efl_Event_Pointer *pe = NULL; 1731 Efl_Event_Pointer_Data *ev = NULL;
1732 Efl_Event_Pointer *evt;
1686 Eina_List *l, *copy; 1733 Eina_List *l, *copy;
1687 Evas_Event_Mouse_Wheel ev;
1688 Evas_Object *eo_obj; 1734 Evas_Object *eo_obj;
1689 int event_id = 0; 1735 int event_id = 0;
1690 1736
1691 if (e->is_frozen) return; 1737 if (e->is_frozen) return;
1692 e->last_timestamp = timestamp; 1738 e->last_timestamp = pe->timestamp;
1693 1739
1694 _evas_object_event_new(); 1740 _evas_object_event_new();
1695
1696 event_id = _evas_event_counter; 1741 event_id = _evas_event_counter;
1697 ev.direction = direction; 1742
1698 ev.z = z; 1743 evt = efl_event_dup(pe->eo);
1699 ev.output.x = e->pointer.x; 1744 ev = efl_data_scope_get(evt, EFL_EVENT_POINTER_CLASS);
1700 ev.output.y = e->pointer.y; 1745 if (!ev) return;
1701 ev.canvas.x = e->pointer.x; 1746
1702 ev.canvas.y = e->pointer.y; 1747 // adjust missing data based on evas state
1703 ev.data = (void *) data; 1748 ev->cur.x = e->pointer.x;
1704 ev.modifiers = &(e->modifiers); 1749 ev->cur.y = e->pointer.y;
1705 ev.locks = &(e->locks); 1750 ev->modifiers = &(e->modifiers);
1706 ev.timestamp = timestamp; 1751 ev->locks = &(e->locks);
1707 ev.event_flags = e->default_event_flags; 1752 ev->event_flags = e->default_event_flags;
1708 ev.dev = _evas_device_top_get(eo_e); 1753 ev->device = efl_ref(_evas_device_top_get(eo_e));
1709 if (ev.dev) efl_ref(ev.dev);
1710 1754
1711 _evas_walk(e); 1755 _evas_walk(e);
1712 copy = evas_event_list_copy(e->pointer.object.in); 1756 copy = evas_event_list_copy(e->pointer.object.in);
@@ -1716,28 +1760,39 @@ _canvas_event_feed_mouse_wheel_internal(Eo *eo_e, int direction, int z,
1716 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 1760 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
1717 if (!evas_event_freezes_through(eo_obj, obj)) 1761 if (!evas_event_freezes_through(eo_obj, obj))
1718 { 1762 {
1719 ev.canvas.x = e->pointer.x; 1763 ev->cur.x = e->pointer.x;
1720 ev.canvas.y = e->pointer.y; 1764 ev->cur.y = e->pointer.y;
1721 _evas_event_havemap_adjust(eo_obj, obj, &ev.canvas.x, &ev.canvas.y, 1765 _evas_event_havemap_adjust_f(eo_obj, obj, &ev->cur, obj->mouse_grabbed);
1722 obj->mouse_grabbed); 1766 evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_WHEEL, NULL,
1723 EV_CALL(eo_obj, obj, EVAS_CALLBACK_MOUSE_WHEEL, &ev, event_id, pe, parent_pe); 1767 event_id, EFL_EVENT_POINTER_WHEEL, evt);
1724 if ((obj->proxy->is_proxy) && (obj->proxy->src_events)) 1768 if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
1725 _evas_event_source_wheel_events(eo_obj, eo_e, &ev, event_id, pe); 1769 _evas_event_source_wheel_events(eo_obj, eo_e, evt, event_id);
1726 if (e->delete_me || e->is_frozen) break; 1770 if (e->delete_me || e->is_frozen) break;
1727 } 1771 }
1728 } 1772 }
1729 eina_list_free(copy); 1773 eina_list_free(copy);
1730 _evas_post_event_callback_call(eo_e, e); 1774 _evas_post_event_callback_call(eo_e, e);
1731 1775
1732 if (ev.dev) efl_unref(ev.dev); 1776 efl_unref(ev->device);
1777 efl_del(evt);
1733 _evas_unwalk(e); 1778 _evas_unwalk(e);
1734 EV_DEL(pe);
1735} 1779}
1736 1780
1737EAPI void 1781EAPI void
1738evas_event_feed_mouse_wheel(Eo *eo_e, int direction, int z, unsigned int timestamp, const void *data) 1782evas_event_feed_mouse_wheel(Eo *eo_e, int direction, int z, unsigned int timestamp, const void *data)
1739{ 1783{
1740 _canvas_event_feed_mouse_wheel_internal(eo_e, direction, z, timestamp, data, NULL); 1784 Efl_Event_Pointer_Data *ev = NULL;
1785 Efl_Event_Pointer *evt = efl_event_instance_get(EFL_EVENT_POINTER_CLASS, eo_e, (void **) &ev);
1786
1787 if (!ev) return;
1788
1789 ev->wheel.dir = direction ? EFL_ORIENT_HORIZONTAL : EFL_ORIENT_VERTICAL;
1790 ev->wheel.z = z;
1791 ev->timestamp = timestamp;
1792 ev->data = (void *) data;
1793
1794 _canvas_event_feed_mouse_wheel_internal(eo_e, ev);
1795 efl_del(evt);
1741} 1796}
1742 1797
1743static void 1798static void
@@ -3418,7 +3473,6 @@ _evas_canvas_event_pointer_cb(void *data, const Eo_Event *event)
3418 Efl_Event_Pointer_Data *ev = efl_data_scope_get(event->info, EFL_EVENT_POINTER_CLASS); 3473 Efl_Event_Pointer_Data *ev = efl_data_scope_get(event->info, EFL_EVENT_POINTER_CLASS);
3419 Evas_Public_Data *e = data; 3474 Evas_Public_Data *e = data;
3420 Evas *eo_e = event->object; 3475 Evas *eo_e = event->object;
3421 int dir;
3422 3476
3423 if (!ev) return; 3477 if (!ev) return;
3424 3478
@@ -3487,8 +3541,7 @@ _evas_canvas_event_pointer_cb(void *data, const Eo_Event *event)
3487 break; 3541 break;
3488 3542
3489 case EFL_POINTER_ACTION_WHEEL: 3543 case EFL_POINTER_ACTION_WHEEL:
3490 dir = (ev->wheel.dir == EFL_ORIENT_HORIZONTAL) ? 1 : 0; 3544 _canvas_event_feed_mouse_wheel_internal(eo_e, ev);
3491 _canvas_event_feed_mouse_wheel_internal(eo_e, dir, ev->wheel.z, ev->timestamp, ev->data, ev->eo);
3492 break; 3545 break;
3493 3546
3494 default: 3547 default:
diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c
index 113723c2d7..66bea1c0e0 100644
--- a/src/lib/evas/canvas/evas_map.c
+++ b/src/lib/evas/canvas/evas_map.c
@@ -267,8 +267,8 @@ _evas_map_util_points_populate(Evas_Map *m, const double x, const double y, cons
267} 267}
268 268
269Eina_Bool 269Eina_Bool
270evas_map_coords_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y, 270evas_map_coords_get(const Evas_Map *m, double x, double y,
271 Evas_Coord *mx, Evas_Coord *my, int grab) 271 double *mx, double *my, int grab)
272{ 272{
273 MAGIC_CHECK(m, Evas_Map, MAGIC_MAP); 273 MAGIC_CHECK(m, Evas_Map, MAGIC_MAP);
274 return EINA_FALSE; 274 return EINA_FALSE;
@@ -284,14 +284,14 @@ evas_map_coords_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y,
284 284
285 int i, j, edges, edge[m->count][2]; 285 int i, j, edges, edge[m->count][2];
286 Eina_Bool douv = EINA_FALSE; 286 Eina_Bool douv = EINA_FALSE;
287 Evas_Coord xe[2]; 287 double xe[2];
288 double u[2] = { 0.0, 0.0 }; 288 double u[2] = { 0.0, 0.0 };
289 double v[2] = { 0.0, 0.0 }; 289 double v[2] = { 0.0, 0.0 };
290 290
291/* 291/*
292 if (grab) 292 if (grab)
293 { 293 {
294 Evas_Coord ymin, ymax; 294 double ymin, ymax;
295 295
296 ymin = m->points[0].y; 296 ymin = m->points[0].y;
297 ymax = m->points[0].y; 297 ymax = m->points[0].y;
@@ -324,7 +324,7 @@ evas_map_coords_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y,
324 if ((mx) || (my)) douv = EINA_TRUE; 324 if ((mx) || (my)) douv = EINA_TRUE;
325 for (i = 0; i < (edges - 1); i+= 2) 325 for (i = 0; i < (edges - 1); i+= 2)
326 { 326 {
327 Evas_Coord yp, yd; 327 double yp, yd;
328 328
329 j = i + 1; 329 j = i + 1;
330 yd = m->points[edge[i][1]].y - m->points[edge[i][0]].y; 330 yd = m->points[edge[i][1]].y - m->points[edge[i][0]].y;
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index d63e7d4820..503313c215 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -974,7 +974,7 @@ struct _Evas_Map
974 Evas_Coord_Rectangle normal_geometry; // bounding box of map geom actually 974 Evas_Coord_Rectangle normal_geometry; // bounding box of map geom actually
975// void *surface; // surface holding map if needed 975// void *surface; // surface holding map if needed
976// int surface_w, surface_h; // current surface w & h alloc 976// int surface_w, surface_h; // current surface w & h alloc
977 Evas_Coord mx, my; // mouse x, y after conversion to map space 977 double mx, my; // mouse x, y after conversion to map space
978 struct { 978 struct {
979 Evas_Coord px, py, z0, foc; 979 Evas_Coord px, py, z0, foc;
980 } persp; 980 } persp;
@@ -1939,7 +1939,7 @@ void evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object
1939void evas_render_mask_subrender(Evas_Public_Data *e, Evas_Object_Protected_Data *mask, Evas_Object_Protected_Data *prev_mask, int level); 1939void evas_render_mask_subrender(Evas_Public_Data *e, Evas_Object_Protected_Data *mask, Evas_Object_Protected_Data *prev_mask, int level);
1940 1940
1941Eina_Bool evas_map_inside_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y); 1941Eina_Bool evas_map_inside_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y);
1942Eina_Bool evas_map_coords_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y, Evas_Coord *mx, Evas_Coord *my, int grab); 1942Eina_Bool evas_map_coords_get(const Evas_Map *m, double x, double y, double *mx, double *my, int grab);
1943Eina_Bool evas_object_map_update(Evas_Object *obj, int x, int y, int imagew, int imageh, int uvw, int uvh); 1943Eina_Bool evas_object_map_update(Evas_Object *obj, int x, int y, int imagew, int imageh, int uvw, int uvh);
1944void evas_map_object_move_diff_set(Evas_Map *m, Evas_Coord diff_x, Evas_Coord diff_y); 1944void evas_map_object_move_diff_set(Evas_Map *m, Evas_Coord diff_x, Evas_Coord diff_y);
1945 1945