summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/elementary/test_events.c17
-rw-r--r--src/bin/elementary/test_photocam.c2
-rw-r--r--src/bin/elementary/test_scroller.c4
-rw-r--r--src/bin/elementary/test_ui_grid.c23
-rw-r--r--src/examples/evas/evas-3d-proxy.c2
-rw-r--r--src/examples/evas/evas-object-manipulation-eo.c8
-rw-r--r--src/lib/edje/edje_calc.c10
-rw-r--r--src/lib/edje/edje_smart.c12
-rw-r--r--src/lib/edje/edje_text.c5
-rw-r--r--src/lib/efl/interfaces/efl_gfx.eo11
-rw-r--r--src/lib/eina/eina_rectangle.h5
-rw-r--r--src/lib/elementary/efl_ui_grid_static.c16
-rw-r--r--src/lib/elementary/efl_ui_image.c12
-rw-r--r--src/lib/elementary/efl_ui_image_zoomable.c15
-rw-r--r--src/lib/elementary/efl_ui_text.c9
-rw-r--r--src/lib/elementary/efl_ui_textpath.c47
-rw-r--r--src/lib/elementary/efl_ui_win.c38
-rw-r--r--src/lib/elementary/elm_diskselector.c9
-rw-r--r--src/lib/elementary/elm_entry.c9
-rw-r--r--src/lib/elementary/elm_gengrid.c15
-rw-r--r--src/lib/elementary/elm_genlist.c15
-rw-r--r--src/lib/elementary/elm_hover.c8
-rw-r--r--src/lib/elementary/elm_interface_scrollable.c10
-rw-r--r--src/lib/elementary/elm_list.c9
-rw-r--r--src/lib/elementary/elm_map.c15
-rw-r--r--src/lib/elementary/elm_mapbuf.c6
-rw-r--r--src/lib/elementary/elm_menu.c15
-rw-r--r--src/lib/elementary/elm_notify.c14
-rw-r--r--src/lib/elementary/elm_panel.c9
-rw-r--r--src/lib/elementary/elm_scroller.c9
-rw-r--r--src/lib/elementary/elm_toolbar.c9
-rw-r--r--src/lib/elementary/elm_widget.c10
-rw-r--r--src/lib/emotion/emotion_smart.c8
-rw-r--r--src/lib/evas/canvas/efl_canvas_object_event_grabber.c6
-rw-r--r--src/lib/evas/canvas/evas_object_box.c6
-rw-r--r--src/lib/evas/canvas/evas_object_main.c37
-rw-r--r--src/lib/evas/canvas/evas_object_smart.c8
-rw-r--r--src/lib/evas/canvas/evas_object_table.c6
-rw-r--r--src/lib/evas/canvas/evas_object_textblock.c16
-rw-r--r--src/lib/evas/canvas/evas_vg_node.c27
-rw-r--r--src/tests/emotion/emotion_test_main-eo.c13
41 files changed, 255 insertions, 270 deletions
diff --git a/src/bin/elementary/test_events.c b/src/bin/elementary/test_events.c
index 013bd91..8a10403 100644
--- a/src/bin/elementary/test_events.c
+++ b/src/bin/elementary/test_events.c
@@ -111,18 +111,17 @@ _clicked_button2(void *data, const Efl_Event *ev EINA_UNUSED)
111{ 111{
112 testdata *td = data; 112 testdata *td = data;
113 Eo *bt = td->button; 113 Eo *bt = td->button;
114 int x, y, w, h; 114 Eina_Rect r;
115 115
116 if (!td->evkeyup) 116 if (!td->evkeyup)
117 { 117 {
118 efl_gfx_position_get(bt, &x, &y); 118 r = efl_gfx_geometry_get(bt);
119 efl_gfx_size_get(bt, &w, &h); 119
120 120 r.x = r.x + r.w / 2;
121 x = x + w / 2; 121 r.y = r.y + r.h / 2;
122 y = y + h / 2; 122 efl_input_pointer_position_set(td->evmove, r.x, r.y);
123 efl_input_pointer_position_set(td->evmove, x, y); 123 efl_input_pointer_position_set(td->evdown, r.x, r.y);
124 efl_input_pointer_position_set(td->evdown, x, y); 124 efl_input_pointer_position_set(td->evup, r.x, r.y);
125 efl_input_pointer_position_set(td->evup, x, y);
126 125
127 efl_event_callback_call(td->win, EFL_EVENT_POINTER_MOVE, td->evmove); 126 efl_event_callback_call(td->win, EFL_EVENT_POINTER_MOVE, td->evmove);
128 efl_event_callback_call(td->win, EFL_EVENT_POINTER_DOWN, td->evdown); 127 efl_event_callback_call(td->win, EFL_EVENT_POINTER_DOWN, td->evdown);
diff --git a/src/bin/elementary/test_photocam.c b/src/bin/elementary/test_photocam.c
index 4e25fdd..25d1b3a 100644
--- a/src/bin/elementary/test_photocam.c
+++ b/src/bin/elementary/test_photocam.c
@@ -767,7 +767,7 @@ _zoomable_move_resize_cb(void *data, const Efl_Event *ev)
767 767
768 r = efl_gfx_geometry_get(ev->object); 768 r = efl_gfx_geometry_get(ev->object);
769 efl_gfx_size_set(data, r.w, r.h); 769 efl_gfx_size_set(data, r.w, r.h);
770 efl_gfx_position_set(data, r.x, r.y); 770 efl_gfx_position_set(data, r.pos);
771} 771}
772 772
773static void 773static void
diff --git a/src/bin/elementary/test_scroller.c b/src/bin/elementary/test_scroller.c
index 826f064..45991c4 100644
--- a/src/bin/elementary/test_scroller.c
+++ b/src/bin/elementary/test_scroller.c
@@ -491,8 +491,8 @@ _bounce_cb(void *data)
491 if (!bounce->y1) 491 if (!bounce->y1)
492 { 492 {
493 elm_interface_scrollable_bounce_allow_set(bounce->scroller, 0, 1); 493 elm_interface_scrollable_bounce_allow_set(bounce->scroller, 0, 1);
494 efl_gfx_position_get(bounce->it1, NULL, &bounce->y1); 494 bounce->y1 = efl_gfx_position_get(bounce->it1).y;
495 efl_gfx_position_get(bounce->it2, NULL, &bounce->y2); 495 bounce->y2 = efl_gfx_position_get(bounce->it2).y;
496 } 496 }
497 497
498 bounce->state++; 498 bounce->state++;
diff --git a/src/bin/elementary/test_ui_grid.c b/src/bin/elementary/test_ui_grid.c
index b9b7972..7ddcdca 100644
--- a/src/bin/elementary/test_ui_grid.c
+++ b/src/bin/elementary/test_ui_grid.c
@@ -131,15 +131,15 @@ _custom_layout_update(Eo *pack, void *_pd EINA_UNUSED)
131 /* Example custom layout for grid: 131 /* Example custom layout for grid:
132 * divide space into regions of same size, place objects in center of their 132 * divide space into regions of same size, place objects in center of their
133 * cells using their min size 133 * cells using their min size
134 * Note: This is a TERRIBLE layout function (disregards align, weight, ...) 134 * Note: This is a TERRIBLE layout function (disregards align, weig.ht, ...)
135 */ 135 */
136 136
137 int rows, cols, gw, gh, gx, gy, c, r, cs, rs, gmw = 0, gmh = 0; 137 int rows, cols, c, r, cs, rs, gmw = 0, gmh = 0;
138 Eina_Iterator *it; 138 Eina_Iterator *it;
139 Eina_Rect g;
139 Eo *item; 140 Eo *item;
140 141
141 efl_gfx_size_get(pack, &gw, &gh); 142 g = efl_gfx_geometry_get(pack);
142 efl_gfx_position_get(pack, &gx, &gy);
143 143
144 efl_pack_grid_size_get(pack, &cols, &rows); 144 efl_pack_grid_size_get(pack, &cols, &rows);
145 if (!cols || !rows) goto end; 145 if (!cols || !rows) goto end;
@@ -149,16 +149,15 @@ _custom_layout_update(Eo *pack, void *_pd EINA_UNUSED)
149 { 149 {
150 if (efl_pack_grid_position_get(pack, item, &c, &r, &cs, &rs)) 150 if (efl_pack_grid_position_get(pack, item, &c, &r, &cs, &rs))
151 { 151 {
152 int x, y, mw, mh; 152 Eina_Rect m;
153 153
154 efl_gfx_size_hint_combined_min_get(item, &mw, &mh); 154 efl_gfx_size_hint_combined_min_get(item, &m.w, &m.h);
155 x = gx + c * gw / cols + (cs * gw / cols - mw) / 2; 155 m.x = g.x + c * g.w / cols + (cs * g.w / cols - m.w) / 2;
156 y = gy + r * gh / rows + (rs * gh / rows - mh) / 2; 156 m.y = g.y + r * g.h / rows + (rs * g.h / rows - m.h) / 2;
157 efl_gfx_size_set(item, mw, mh); 157 efl_gfx_geometry_set(item, m);
158 efl_gfx_position_set(item, x, y);
159 158
160 gmw = MAX(gmw, mw); 159 gmw = MAX(gmw, m.w);
161 gmh = MAX(gmh, mh); 160 gmh = MAX(gmh, m.h);
162 } 161 }
163 } 162 }
164 eina_iterator_free(it); 163 eina_iterator_free(it);
diff --git a/src/examples/evas/evas-3d-proxy.c b/src/examples/evas/evas-3d-proxy.c
index 7a02b81..74b6d0b 100644
--- a/src/examples/evas/evas-3d-proxy.c
+++ b/src/examples/evas/evas-3d-proxy.c
@@ -228,7 +228,7 @@ main(void)
228#ifdef USE_EO_IMAGE 228#ifdef USE_EO_IMAGE
229 source = efl_add(EFL_CANVAS_IMAGE_CLASS, evas); 229 source = efl_add(EFL_CANVAS_IMAGE_CLASS, evas);
230 efl_gfx_buffer_copy_set(source, NULL, IMG_WIDTH, IMG_HEIGHT, 0, EFL_GFX_COLORSPACE_ARGB8888, 0); 230 efl_gfx_buffer_copy_set(source, NULL, IMG_WIDTH, IMG_HEIGHT, 0, EFL_GFX_COLORSPACE_ARGB8888, 0);
231 efl_gfx_position_set(source, (WIDTH / 2), (HEIGHT / 2)); 231 efl_gfx_position_set(source, EINA_POSITION2D((WIDTH / 2), (HEIGHT / 2)));
232 efl_gfx_size_set(source, (WIDTH / 2), (HEIGHT / 2)); 232 efl_gfx_size_set(source, (WIDTH / 2), (HEIGHT / 2));
233 efl_gfx_visible_set(source, EINA_TRUE); 233 efl_gfx_visible_set(source, EINA_TRUE);
234#else 234#else
diff --git a/src/examples/evas/evas-object-manipulation-eo.c b/src/examples/evas/evas-object-manipulation-eo.c
index 40bf266..3dad0d7 100644
--- a/src/examples/evas/evas-object-manipulation-eo.c
+++ b/src/examples/evas/evas-object-manipulation-eo.c
@@ -176,7 +176,7 @@ main(void)
176 evas_object_name_set(d.bg, "background rectangle"); 176 evas_object_name_set(d.bg, "background rectangle");
177 efl_gfx_color_set(d.bg, 255, 255, 255, 255); 177 efl_gfx_color_set(d.bg, 255, 255, 255, 255);
178 /* white bg */ 178 /* white bg */
179 efl_gfx_position_set(d.bg, 0, 0); 179 efl_gfx_position_set(d.bg, EINA_POSITION2D(0, 0));
180 /* at canvas' origin */ 180 /* at canvas' origin */
181 efl_gfx_size_set(d.bg, WIDTH, HEIGHT); 181 efl_gfx_size_set(d.bg, WIDTH, HEIGHT);
182 /* covers full canvas */ 182 /* covers full canvas */
@@ -202,7 +202,7 @@ main(void)
202 } 202 }
203 else 203 else
204 { 204 {
205 efl_gfx_position_set(d.img, 0, 0); 205 efl_gfx_position_set(d.img, EINA_POSITION2D(0, 0));
206 efl_gfx_size_set(d.img, WIDTH, HEIGHT); 206 efl_gfx_size_set(d.img, WIDTH, HEIGHT);
207 efl_gfx_visible_set(d.img, EINA_TRUE); 207 efl_gfx_visible_set(d.img, EINA_TRUE);
208 printf("Image object added, class name is: %s\n", 208 printf("Image object added, class name is: %s\n",
@@ -222,7 +222,7 @@ main(void)
222 { 222 {
223 efl_image_border_set(d.clipper_border, 3, 3, 3, 3); 223 efl_image_border_set(d.clipper_border, 3, 3, 3, 3);
224 efl_image_border_center_fill_set(d.clipper_border, EFL_GFX_BORDER_FILL_MODE_NONE); 224 efl_image_border_center_fill_set(d.clipper_border, EFL_GFX_BORDER_FILL_MODE_NONE);
225 efl_gfx_position_set(d.clipper_border, (WIDTH / 4) -3, (HEIGHT / 4) - 3); 225 efl_gfx_position_set(d.clipper_border, EINA_POSITION2D((WIDTH / 4) -3, (HEIGHT / 4) - 3));
226 efl_gfx_size_set(d.clipper_border, (WIDTH / 2) + 6, (HEIGHT / 2) + 6); 226 efl_gfx_size_set(d.clipper_border, (WIDTH / 2) + 6, (HEIGHT / 2) + 6);
227 efl_gfx_visible_set(d.clipper_border, EINA_TRUE); 227 efl_gfx_visible_set(d.clipper_border, EINA_TRUE);
228 } 228 }
@@ -232,7 +232,7 @@ main(void)
232 * by 255) */ 232 * by 255) */
233 d.clipper = efl_add(EFL_CANVAS_RECTANGLE_CLASS, d.canvas); 233 d.clipper = efl_add(EFL_CANVAS_RECTANGLE_CLASS, d.canvas);
234 234
235 efl_gfx_position_set(d.clipper, WIDTH / 4, HEIGHT / 4); 235 efl_gfx_position_set(d.clipper, EINA_POSITION2D(WIDTH / 4, HEIGHT / 4));
236 efl_gfx_size_set(d.clipper, WIDTH / 2, HEIGHT / 2); 236 efl_gfx_size_set(d.clipper, WIDTH / 2, HEIGHT / 2);
237 efl_gfx_visible_set(d.clipper, EINA_TRUE); 237 efl_gfx_visible_set(d.clipper, EINA_TRUE);
238 238
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 54aca19..b5020c9 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -5264,15 +5264,15 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
5264 } 5264 }
5265 } 5265 }
5266 else 5266 else
5267 efl_gfx_position_set(ep->object, ed->x + pf->final.x, ed->y + pf->final.y); 5267 efl_gfx_position_set(ep->object, EINA_POSITION2D(ed->x + pf->final.x, ed->y + pf->final.y));
5268#else 5268#else
5269 efl_gfx_position_set(ep->object, ed->x + pf->final.x, ed->y + pf->final.y); 5269 efl_gfx_position_set(ep->object, EINA_POSITION2D(ed->x + pf->final.x, ed->y + pf->final.y));
5270 efl_gfx_size_set(ep->object, pf->final.w, pf->final.h); 5270 efl_gfx_size_set(ep->object, pf->final.w, pf->final.h);
5271#endif 5271#endif
5272 5272
5273 if (ep->nested_smart) /* Move, Resize all nested parts */ 5273 if (ep->nested_smart) /* Move, Resize all nested parts */
5274 { /* Not really needed but will improve the bounding box evaluation done by Evas */ 5274 { /* Not really needed but will improve the bounding box evaluation done by Evas */
5275 efl_gfx_position_set(ep->nested_smart, ed->x + pf->final.x, ed->y + pf->final.y); 5275 efl_gfx_position_set(ep->nested_smart, EINA_POSITION2D(ed->x + pf->final.x, ed->y + pf->final.y));
5276 efl_gfx_size_set(ep->nested_smart, pf->final.w, pf->final.h); 5276 efl_gfx_size_set(ep->nested_smart, pf->final.w, pf->final.h);
5277 } 5277 }
5278 if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) 5278 if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
@@ -5312,7 +5312,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
5312 5312
5313 pd_camera = (Edje_Part_Description_Camera*) ep->chosen_description; 5313 pd_camera = (Edje_Part_Description_Camera*) ep->chosen_description;
5314 5314
5315 efl_gfx_position_set(ep->object, ed->x + pf->final.x, ed->y + pf->final.y), 5315 efl_gfx_position_set(ep->object, EINA_POSITION2D(ed->x + pf->final.x, ed->y + pf->final.y)),
5316 efl_gfx_size_set(ep->object, pf->final.w, pf->final.h); 5316 efl_gfx_size_set(ep->object, pf->final.w, pf->final.h);
5317 5317
5318 viewport = evas_object_image_source_get(ep->object); 5318 viewport = evas_object_image_source_get(ep->object);
@@ -5563,7 +5563,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
5563 5563
5564 if (ep->part->type == EDJE_PART_TYPE_GROUP) 5564 if (ep->part->type == EDJE_PART_TYPE_GROUP)
5565 vis = evas_object_visible_get(ed->obj); 5565 vis = evas_object_visible_get(ed->obj);
5566 efl_gfx_position_set(ep->typedata.swallow->swallowed_object, ed->x + pf->final.x, ed->y + pf->final.y); 5566 efl_gfx_position_set(ep->typedata.swallow->swallowed_object, EINA_POSITION2D(ed->x + pf->final.x, ed->y + pf->final.y));
5567 efl_gfx_size_set(ep->typedata.swallow->swallowed_object, pf->final.w, pf->final.h); 5567 efl_gfx_size_set(ep->typedata.swallow->swallowed_object, pf->final.w, pf->final.h);
5568 efl_gfx_visible_set(ep->typedata.swallow->swallowed_object, vis); 5568 efl_gfx_visible_set(ep->typedata.swallow->swallowed_object, vis);
5569 } 5569 }
diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c
index 843bb90..bd25e58 100644
--- a/src/lib/edje/edje_smart.c
+++ b/src/lib/edje/edje_smart.c
@@ -167,18 +167,18 @@ _edje_object_efl_canvas_group_group_del(Eo *obj, Edje *ed)
167} 167}
168 168
169EOLIAN static void 169EOLIAN static void
170_edje_object_efl_gfx_position_set(Eo *obj, Edje *ed, Evas_Coord x, Evas_Coord y) 170_edje_object_efl_gfx_position_set(Eo *obj, Edje *ed, Eina_Position2D pos)
171{ 171{
172 unsigned short i; 172 unsigned short i;
173 173
174 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 174 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
175 return; 175 return;
176 176
177 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 177 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
178 178
179 if ((ed->x == x) && (ed->y == y)) return; 179 if ((ed->x == pos.x) && (ed->y == pos.y)) return;
180 ed->x = x; 180 ed->x = pos.x;
181 ed->y = y; 181 ed->y = pos.y;
182// evas_object_move(ed->clipper, ed->x, ed->y); 182// evas_object_move(ed->clipper, ed->x, ed->y);
183 183
184 if (_edje_lua_script_only(ed)) 184 if (_edje_lua_script_only(ed))
diff --git a/src/lib/edje/edje_text.c b/src/lib/edje/edje_text.c
index 3c3e1c1..bb90d17 100644
--- a/src/lib/edje/edje_text.c
+++ b/src/lib/edje/edje_text.c
@@ -515,7 +515,10 @@ arrange_text:
515 515
516 if (!calc_only) 516 if (!calc_only)
517 { 517 {
518 efl_gfx_position_set(ep->object, ed->x + TO_INT(params->eval.x) + ep->typedata.text->offset.x, ed->y + TO_INT(params->eval.y) + ep->typedata.text->offset.y); 518 Eina_Position2D pos;
519 pos.x = ed->x + TO_INT(params->eval.x) + ep->typedata.text->offset.x;
520 pos.y = ed->y + TO_INT(params->eval.y) + ep->typedata.text->offset.y;
521 efl_gfx_position_set(ep->object, pos);
519 efl_gfx_visible_set(ep->object, params->visible); 522 efl_gfx_visible_set(ep->object, params->visible);
520 } 523 }
521 524
diff --git a/src/lib/efl/interfaces/efl_gfx.eo b/src/lib/efl/interfaces/efl_gfx.eo
index eccc2a0..02a9209 100644
--- a/src/lib/efl/interfaces/efl_gfx.eo
+++ b/src/lib/efl/interfaces/efl_gfx.eo
@@ -12,16 +12,17 @@ interface Efl.Gfx {
12 of the window, within its border decorations (application space). 12 of the window, within its border decorations (application space).
13 ]] 13 ]]
14 set { 14 set {
15 [[Moves the given Evas object to the given location inside its 15 [[Moves the given canvas object to the given location inside its
16 canvas' viewport. 16 canvas' viewport. If unchanged this call may be entirely skipped,
17 but if changed this will trigger move events, as well as
18 potential pointer,in or pointer,out events.
17 ]] 19 ]]
18 } 20 }
19 get { 21 get {
20 [[Retrieves the position of the given Evas object.]] 22 [[Retrieves the position of the given canvas object.]]
21 } 23 }
22 values { 24 values {
23 x: int; [[X coordinate]] 25 pos: Eina.Position2D; [[A 2D pixel coordinate.]]
24 y: int; [[Y coordinate]]
25 } 26 }
26 } 27 }
27 @property size { 28 @property size {
diff --git a/src/lib/eina/eina_rectangle.h b/src/lib/eina/eina_rectangle.h
index ba3e78f..b2792c0 100644
--- a/src/lib/eina/eina_rectangle.h
+++ b/src/lib/eina/eina_rectangle.h
@@ -43,10 +43,13 @@
43#define EINA_RECTANGLE_FORMAT "dx%d - %dx%d" 43#define EINA_RECTANGLE_FORMAT "dx%d - %dx%d"
44#define EINA_RECTANGLE_ARGS(r) (r)->x, (r)->y, (r)->w, (r)->h 44#define EINA_RECTANGLE_ARGS(r) (r)->x, (r)->y, (r)->w, (r)->h
45 45
46#define EINA_RECT(x, y, w, h) ((Eina_Rect) { { x, y, w, h } }) 46#define EINA_RECT(x, y, w, h) ((Eina_Rect) { { (x), (y), (w), (h) } })
47#define EINA_RECT_ZERO() { EINA_RECTANGLE_INIT } 47#define EINA_RECT_ZERO() { EINA_RECTANGLE_INIT }
48#define EINA_RECT_EMPTY() ((Eina_Rect) EINA_RECT_ZERO()) 48#define EINA_RECT_EMPTY() ((Eina_Rect) EINA_RECT_ZERO())
49 49
50#define EINA_POSITION2D(x, y) ((Eina_Position2D) { (x), (y) })
51#define EINA_SIZE2D(x, y) ((Eina_Size2D) { (x), (y) })
52
50/** @brief A 2D position in pixels coordinates */ 53/** @brief A 2D position in pixels coordinates */
51typedef struct _Eina_Position2D 54typedef struct _Eina_Position2D
52{ 55{
diff --git a/src/lib/elementary/efl_ui_grid_static.c b/src/lib/elementary/efl_ui_grid_static.c
index dfa128a..fb5601a 100644
--- a/src/lib/elementary/efl_ui_grid_static.c
+++ b/src/lib/elementary/efl_ui_grid_static.c
@@ -26,9 +26,9 @@ _efl_ui_grid_static_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED
26 Efl_Ui_Grid_Data *gd; 26 Efl_Ui_Grid_Data *gd;
27 Grid_Item *gi; 27 Grid_Item *gi;
28 Evas *e; 28 Evas *e;
29 Evas_Coord x, y, w, h;
30 long long xl, yl, wl, hl, vwl, vhl; 29 long long xl, yl, wl, hl, vwl, vhl;
31 Eina_Bool mirror; 30 Eina_Bool mirror;
31 Eina_Rect r;
32 32
33 gd = efl_data_scope_get(obj, EFL_UI_GRID_CLASS); 33 gd = efl_data_scope_get(obj, EFL_UI_GRID_CLASS);
34 if (!gd->items) return; 34 if (!gd->items) return;
@@ -36,12 +36,11 @@ _efl_ui_grid_static_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED
36 e = evas_object_evas_get(obj); 36 e = evas_object_evas_get(obj);
37 efl_event_freeze(e); 37 efl_event_freeze(e);
38 38
39 efl_gfx_position_get(obj, &x, &y); 39 r = efl_gfx_geometry_get(obj);
40 efl_gfx_size_get(obj, &w, &h); 40 xl = r.x;
41 xl = x; 41 yl = r.y;
42 yl = y; 42 wl = r.w;
43 wl = w; 43 hl = r.h;
44 hl = h;
45 mirror = efl_ui_mirrored_get(obj); 44 mirror = efl_ui_mirrored_get(obj);
46 45
47 if (!gd->req_cols || !gd->req_rows) 46 if (!gd->req_cols || !gd->req_rows)
@@ -69,8 +68,7 @@ _efl_ui_grid_static_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED
69 } 68 }
70 y1 = yl + ((hl * (long long)gi->row) / vhl); 69 y1 = yl + ((hl * (long long)gi->row) / vhl);
71 y2 = yl + ((hl * (long long)(gi->row + gi->row_span)) / vhl); 70 y2 = yl + ((hl * (long long)(gi->row + gi->row_span)) / vhl);
72 efl_gfx_position_set(gi->object, x1, y1); 71 efl_gfx_geometry_set(gi->object, EINA_RECT(x1, y1, x2 - x1, y2 - y1));
73 efl_gfx_size_set(gi->object, x2 - x1, y2 - y1);
74 } 72 }
75err: 73err:
76 efl_event_thaw(e); 74 efl_event_thaw(e);
diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c
index 093e79b..b844665 100644
--- a/src/lib/elementary/efl_ui_image.c
+++ b/src/lib/elementary/efl_ui_image.c
@@ -615,16 +615,16 @@ _efl_ui_image_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Image_Data *sd)
615} 615}
616 616
617EOLIAN static void 617EOLIAN static void
618_efl_ui_image_efl_gfx_position_set(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Coord x, Evas_Coord y) 618_efl_ui_image_efl_gfx_position_set(Eo *obj, Efl_Ui_Image_Data *sd, Eina_Position2D pos)
619{ 619{
620 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 620 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
621 return; 621 return;
622 622
623 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 623 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
624 624
625 if ((sd->img_x == x) && (sd->img_y == y)) return; 625 if ((sd->img_x == pos.x) && (sd->img_y == pos.y)) return;
626 sd->img_x = x; 626 sd->img_x = pos.x;
627 sd->img_y = y; 627 sd->img_y = pos.y;
628 628
629 /* takes care of moving */ 629 /* takes care of moving */
630 _efl_ui_image_internal_sizing_eval(obj, sd); 630 _efl_ui_image_internal_sizing_eval(obj, sd);
diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c
index 0052e6b..e9922db 100644
--- a/src/lib/elementary/efl_ui_image_zoomable.c
+++ b/src/lib/elementary/efl_ui_image_zoomable.c
@@ -151,12 +151,12 @@ _calc_job_cb(void *data)
151} 151}
152 152
153EOLIAN static void 153EOLIAN static void
154_efl_ui_image_zoomable_pan_efl_gfx_position_set(Eo *obj, Efl_Ui_Image_Zoomable_Pan_Data *psd, Evas_Coord x, Evas_Coord y) 154_efl_ui_image_zoomable_pan_efl_gfx_position_set(Eo *obj, Efl_Ui_Image_Zoomable_Pan_Data *psd, Eina_Position2D pos)
155{ 155{
156 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 156 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
157 return; 157 return;
158 158
159 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y); 159 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), pos);
160 160
161 ecore_job_del(psd->wsd->calc_job); 161 ecore_job_del(psd->wsd->calc_job);
162 psd->wsd->calc_job = ecore_job_add(_calc_job_cb, psd->wobj); 162 psd->wsd->calc_job = ecore_job_add(_calc_job_cb, psd->wobj);
@@ -1505,14 +1505,13 @@ _efl_ui_image_zoomable_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Image_Zoomable
1505} 1505}
1506 1506
1507EOLIAN static void 1507EOLIAN static void
1508_efl_ui_image_zoomable_efl_gfx_position_set(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd, Evas_Coord x, Evas_Coord y) 1508_efl_ui_image_zoomable_efl_gfx_position_set(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd, Eina_Position2D pos)
1509{ 1509{
1510 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 1510 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
1511 return; 1511 return;
1512 1512
1513 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 1513 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
1514 1514 efl_gfx_position_set(sd->hit_rect, pos);
1515 evas_object_move(sd->hit_rect, x, y);
1516} 1515}
1517 1516
1518EOLIAN static void 1517EOLIAN static void
diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c
index a589e59..fe4287b 100644
--- a/src/lib/elementary/efl_ui_text.c
+++ b/src/lib/elementary/efl_ui_text.c
@@ -3263,14 +3263,13 @@ _efl_ui_text_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Text_Data *sd)
3263} 3263}
3264 3264
3265EOLIAN static void 3265EOLIAN static void
3266_efl_ui_text_efl_gfx_position_set(Eo *obj, Efl_Ui_Text_Data *sd, Evas_Coord x, Evas_Coord y) 3266_efl_ui_text_efl_gfx_position_set(Eo *obj, Efl_Ui_Text_Data *sd, Eina_Position2D pos)
3267{ 3267{
3268 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 3268 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
3269 return; 3269 return;
3270 3270
3271 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 3271 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
3272 3272 efl_gfx_position_set(sd->hit_rect, pos);
3273 evas_object_move(sd->hit_rect, x, y);
3274 3273
3275 if (sd->hoversel) _hoversel_position(obj); 3274 if (sd->hoversel) _hoversel_position(obj);
3276 3275
diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c
index f4ac2a8..c915ca9 100644
--- a/src/lib/elementary/efl_ui_textpath.c
+++ b/src/lib/elementary/efl_ui_textpath.c
@@ -293,6 +293,7 @@ _path_data_get(Eo *obj, Efl_Ui_Textpath_Data *pd, Eina_Bool set_min)
293 const Efl_Gfx_Path_Command_Type *cmd; 293 const Efl_Gfx_Path_Command_Type *cmd;
294 const double *points; 294 const double *points;
295 Efl_Ui_Textpath_Segment *seg; 295 Efl_Ui_Textpath_Segment *seg;
296 Eina_Position2D opos;
296 297
297 EINA_INLIST_FREE(pd->segments, seg) 298 EINA_INLIST_FREE(pd->segments, seg)
298 { 299 {
@@ -300,44 +301,43 @@ _path_data_get(Eo *obj, Efl_Ui_Textpath_Data *pd, Eina_Bool set_min)
300 free(seg); 301 free(seg);
301 } 302 }
302 303
303 Evas_Coord x, y; 304 opos = efl_gfx_position_get(obj);
304 efl_gfx_position_get(obj, &x, &y);
305 305
306 pd->total_length = 0; 306 pd->total_length = 0;
307 efl_gfx_path_get(obj, &cmd, &points); 307 efl_gfx_path_get(obj, &cmd, &points);
308 if (cmd) 308 if (cmd)
309 { 309 {
310 int pos = -1; 310 int pos = -1;
311 Eina_Rectangle *rect = eina_rectangle_new(0, 0, 0, 0);
312 double px0 = 0.0, py0 = 0.0, ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, px1, py1; 311 double px0 = 0.0, py0 = 0.0, ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, px1, py1;
312 Eina_Rect rect = EINA_RECT_ZERO();
313 313
314 while (*cmd != EFL_GFX_PATH_COMMAND_TYPE_END) 314 while (*cmd != EFL_GFX_PATH_COMMAND_TYPE_END)
315 { 315 {
316 if (*cmd == EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO) 316 if (*cmd == EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO)
317 { 317 {
318 pos++; 318 pos++;
319 px0 = points[pos] + x; 319 px0 = points[pos] + opos.x;
320 pos++; 320 pos++;
321 py0 = points[pos] + y; 321 py0 = points[pos] + opos.y;
322 } 322 }
323 else if (*cmd == EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO) 323 else if (*cmd == EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO)
324 { 324 {
325 Eina_Bezier bz; 325 Eina_Bezier bz;
326 double bx, by, bw, bh; 326 double bx, by, bw, bh;
327 Eina_Rectangle *brect; 327 Eina_Rect brect;
328 328
329 pos++; 329 pos++;
330 ctrl_x0 = points[pos] + x; 330 ctrl_x0 = points[pos] + opos.x;
331 pos++; 331 pos++;
332 ctrl_y0 = points[pos] + y; 332 ctrl_y0 = points[pos] + opos.y;
333 pos++; 333 pos++;
334 ctrl_x1 = points[pos] + x; 334 ctrl_x1 = points[pos] + opos.x;
335 pos++; 335 pos++;
336 ctrl_y1 = points[pos] + y; 336 ctrl_y1 = points[pos] + opos.y;
337 pos++; 337 pos++;
338 px1 = points[pos] + x; 338 px1 = points[pos] + opos.x;
339 pos++; 339 pos++;
340 py1 = points[pos] + y; 340 py1 = points[pos] + opos.y;
341 341
342 eina_bezier_values_set(&bz, px0, py0, ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, px1, py1); 342 eina_bezier_values_set(&bz, px0, py0, ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1, px1, py1);
343 seg = malloc(sizeof(Efl_Ui_Textpath_Segment)); 343 seg = malloc(sizeof(Efl_Ui_Textpath_Segment));
@@ -359,18 +359,17 @@ _path_data_get(Eo *obj, Efl_Ui_Textpath_Data *pd, Eina_Bool set_min)
359 py0 = py1; 359 py0 = py1;
360 360
361 eina_bezier_bounds_get(&bz, &bx, &by, &bw, &bh); 361 eina_bezier_bounds_get(&bz, &bx, &by, &bw, &bh);
362 brect = eina_rectangle_new(bx, by, bw, bh); 362 brect = EINA_RECT(bx, by, bw, bh);
363 eina_rectangle_union(rect, brect); 363 eina_rectangle_union(&rect.rect, &brect.rect);
364 eina_rectangle_free(brect);
365 } 364 }
366 else if (*cmd == EFL_GFX_PATH_COMMAND_TYPE_LINE_TO) 365 else if (*cmd == EFL_GFX_PATH_COMMAND_TYPE_LINE_TO)
367 { 366 {
368 Eina_Rectangle *lrect; 367 Eina_Rect lrect;
369 368
370 pos++; 369 pos++;
371 px1 = points[pos] + x; 370 px1 = points[pos] + opos.x;
372 pos++; 371 pos++;
373 py1 = points[pos] + y; 372 py1 = points[pos] + opos.y;
374 373
375 seg = malloc(sizeof(Efl_Ui_Textpath_Segment)); 374 seg = malloc(sizeof(Efl_Ui_Textpath_Segment));
376 if (!seg) 375 if (!seg)
@@ -389,17 +388,15 @@ _path_data_get(Eo *obj, Efl_Ui_Textpath_Data *pd, Eina_Bool set_min)
389 pd->segments = eina_inlist_append(pd->segments, EINA_INLIST_GET(seg)); 388 pd->segments = eina_inlist_append(pd->segments, EINA_INLIST_GET(seg));
390 pd->total_length += seg->length; 389 pd->total_length += seg->length;
391 390
392 lrect = eina_rectangle_new(px0, py0, px1 - px0, py1 - py0); 391 lrect = EINA_RECT(px0, py0, px1 - px0, py1 - py0);
393 eina_rectangle_union(rect, lrect); 392 eina_rectangle_union(&rect.rect, &lrect.rect);
394 eina_rectangle_free(lrect);
395 } 393 }
396 cmd++; 394 cmd++;
397 } 395 }
398 if (set_min) 396 if (set_min)
399 { 397 {
400 efl_gfx_size_hint_min_set(obj, rect->w, rect->h); 398 efl_gfx_size_hint_min_set(obj, rect.w, rect.h);
401 } 399 }
402 eina_rectangle_free(rect);
403 } 400 }
404} 401}
405 402
@@ -565,9 +562,9 @@ _efl_ui_textpath_elm_widget_theme_apply(Eo *obj, Efl_Ui_Textpath_Data *pd)
565} 562}
566 563
567EOLIAN static void 564EOLIAN static void
568_efl_ui_textpath_efl_gfx_position_set(Eo *obj, Efl_Ui_Textpath_Data *pd, Evas_Coord x, Evas_Coord y) 565_efl_ui_textpath_efl_gfx_position_set(Eo *obj, Efl_Ui_Textpath_Data *pd, Eina_Position2D pos)
569{ 566{
570 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 567 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
571 _path_data_get(obj, pd, EINA_FALSE); 568 _path_data_get(obj, pd, EINA_FALSE);
572 _text_draw(pd); 569 _text_draw(pd);
573} 570}
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 7258c5f..bddf5bf 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -927,10 +927,10 @@ _elm_win_resize_job(void *data)
927 927
928 if (sd->main_menu) 928 if (sd->main_menu)
929 { 929 {
930 int mx, my; 930 Eina_Position2D pos;
931 931
932 efl_gfx_position_get(sd->main_menu, &mx, &my); 932 pos = efl_gfx_position_get(sd->main_menu);
933 elm_menu_move(sd->main_menu, mx, my); 933 elm_menu_move(sd->main_menu, pos.x, pos.y);
934 } 934 }
935 935
936 sd->response++; 936 sd->response++;
@@ -2922,17 +2922,17 @@ _elm_win_obj_intercept_show(void *data,
2922} 2922}
2923 2923
2924EOLIAN static void 2924EOLIAN static void
2925_efl_ui_win_efl_gfx_position_set(Eo *obj, Efl_Ui_Win_Data *sd, Evas_Coord x, Evas_Coord y) 2925_efl_ui_win_efl_gfx_position_set(Eo *obj, Efl_Ui_Win_Data *sd, Eina_Position2D pos)
2926{ 2926{
2927 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 2927 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
2928 return; 2928 return;
2929 2929
2930 if (sd->img_obj) 2930 if (sd->img_obj)
2931 { 2931 {
2932 if ((x != sd->screen.x) || (y != sd->screen.y)) 2932 if ((pos.x != sd->screen.x) || (pos.y != sd->screen.y))
2933 { 2933 {
2934 sd->screen.x = x; 2934 sd->screen.x = pos.x;
2935 sd->screen.y = y; 2935 sd->screen.y = pos.y;
2936 efl_event_callback_legacy_call(obj, EFL_GFX_EVENT_MOVE, NULL); 2936 efl_event_callback_legacy_call(obj, EFL_GFX_EVENT_MOVE, NULL);
2937 } 2937 }
2938 goto super_skip; 2938 goto super_skip;
@@ -2942,19 +2942,19 @@ _efl_ui_win_efl_gfx_position_set(Eo *obj, Efl_Ui_Win_Data *sd, Evas_Coord x, Eva
2942 if (!sd->response) 2942 if (!sd->response)
2943 { 2943 {
2944 sd->req_xy = EINA_TRUE; 2944 sd->req_xy = EINA_TRUE;
2945 sd->req_x = x; 2945 sd->req_x = pos.x;
2946 sd->req_y = y; 2946 sd->req_y = pos.y;
2947 TRAP(sd, move, x, y); 2947 TRAP(sd, move, pos.x, pos.y);
2948 } 2948 }
2949 if (!ecore_evas_override_get(sd->ee)) goto super_skip; 2949 if (!ecore_evas_override_get(sd->ee)) goto super_skip;
2950 } 2950 }
2951 2951
2952 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 2952 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
2953 2953
2954 if (ecore_evas_override_get(sd->ee)) 2954 if (ecore_evas_override_get(sd->ee))
2955 { 2955 {
2956 sd->screen.x = x; 2956 sd->screen.x = pos.x;
2957 sd->screen.y = y; 2957 sd->screen.y = pos.y;
2958 efl_event_callback_legacy_call(obj, EFL_GFX_EVENT_MOVE, NULL); 2958 efl_event_callback_legacy_call(obj, EFL_GFX_EVENT_MOVE, NULL);
2959 } 2959 }
2960 if (sd->frame_obj) 2960 if (sd->frame_obj)
@@ -2963,13 +2963,13 @@ _efl_ui_win_efl_gfx_position_set(Eo *obj, Efl_Ui_Win_Data *sd, Evas_Coord x, Eva
2963 /* TODO */ 2963 /* TODO */
2964 /* ecore_wl_window_update_location(sd->wl.win, x, y); */ 2964 /* ecore_wl_window_update_location(sd->wl.win, x, y); */
2965#endif 2965#endif
2966 sd->screen.x = x; 2966 sd->screen.x = pos.x;
2967 sd->screen.y = y; 2967 sd->screen.y = pos.y;
2968 } 2968 }
2969 if (sd->img_obj) 2969 if (sd->img_obj)
2970 { 2970 {
2971 sd->screen.x = x; 2971 sd->screen.x = pos.x;
2972 sd->screen.y = y; 2972 sd->screen.y = pos.y;
2973 } 2973 }
2974 2974
2975 return; 2975 return;
@@ -2979,7 +2979,7 @@ super_skip:
2979 * Ugly code flow: legacy code had an early return in smart_move, ie. 2979 * Ugly code flow: legacy code had an early return in smart_move, ie.
2980 * evas object move would be processed but smart object move would be 2980 * evas object move would be processed but smart object move would be
2981 * aborted. This super call tries to simulate that. */ 2981 * aborted. This super call tries to simulate that. */
2982 efl_gfx_position_set(efl_super(obj, EFL_CANVAS_GROUP_CLASS), x, y); 2982 efl_gfx_position_set(efl_super(obj, EFL_CANVAS_GROUP_CLASS), pos);
2983} 2983}
2984 2984
2985EOLIAN static void 2985EOLIAN static void
diff --git a/src/lib/elementary/elm_diskselector.c b/src/lib/elementary/elm_diskselector.c
index b5ae1d3..9e69f3c 100644
--- a/src/lib/elementary/elm_diskselector.c
+++ b/src/lib/elementary/elm_diskselector.c
@@ -1399,14 +1399,13 @@ _elm_diskselector_efl_canvas_group_group_del(Eo *obj, Elm_Diskselector_Data *sd)
1399} 1399}
1400 1400
1401EOLIAN static void 1401EOLIAN static void
1402_elm_diskselector_efl_gfx_position_set(Eo *obj, Elm_Diskselector_Data *sd, Evas_Coord x, Evas_Coord y) 1402_elm_diskselector_efl_gfx_position_set(Eo *obj, Elm_Diskselector_Data *sd, Eina_Position2D pos)
1403{ 1403{
1404 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 1404 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
1405 return; 1405 return;
1406 1406
1407 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 1407 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
1408 1408 efl_gfx_position_set(sd->hit_rect, pos);
1409 evas_object_move(sd->hit_rect, x, y);
1410} 1409}
1411 1410
1412EOLIAN static void 1411EOLIAN static void
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index 02fec56..790b3ff 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -3950,14 +3950,13 @@ _elm_entry_efl_canvas_group_group_del(Eo *obj, Elm_Entry_Data *sd)
3950} 3950}
3951 3951
3952EOLIAN static void 3952EOLIAN static void
3953_elm_entry_efl_gfx_position_set(Eo *obj, Elm_Entry_Data *sd, Evas_Coord x, Evas_Coord y) 3953_elm_entry_efl_gfx_position_set(Eo *obj, Elm_Entry_Data *sd, Eina_Position2D pos)
3954{ 3954{
3955 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 3955 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
3956 return; 3956 return;
3957 3957
3958 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 3958 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
3959 3959 efl_gfx_position_set(sd->hit_rect, pos);
3960 evas_object_move(sd->hit_rect, x, y);
3961 3960
3962 if (sd->hoversel) _hoversel_position(obj); 3961 if (sd->hoversel) _hoversel_position(obj);
3963 3962
diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c
index b700e67..710b81e 100644
--- a/src/lib/elementary/elm_gengrid.c
+++ b/src/lib/elementary/elm_gengrid.c
@@ -661,12 +661,12 @@ _elm_gengrid_pan_efl_object_destructor(Eo *obj, Elm_Gengrid_Pan_Data *psd)
661} 661}
662 662
663EOLIAN static void 663EOLIAN static void
664_elm_gengrid_pan_efl_gfx_position_set(Eo *obj, Elm_Gengrid_Pan_Data *psd, Evas_Coord x, Evas_Coord y) 664_elm_gengrid_pan_efl_gfx_position_set(Eo *obj, Elm_Gengrid_Pan_Data *psd, Eina_Position2D pos)
665{ 665{
666 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 666 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
667 return; 667 return;
668 668
669 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y); 669 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), pos);
670 670
671 ecore_job_del(psd->wsd->calc_job); 671 ecore_job_del(psd->wsd->calc_job);
672 psd->wsd->calc_job = ecore_job_add(_calc_job, psd->wobj); 672 psd->wsd->calc_job = ecore_job_add(_calc_job, psd->wobj);
@@ -4225,14 +4225,13 @@ _elm_gengrid_efl_canvas_group_group_del(Eo *obj, Elm_Gengrid_Data *sd)
4225} 4225}
4226 4226
4227EOLIAN static void 4227EOLIAN static void
4228_elm_gengrid_efl_gfx_position_set(Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord x, Evas_Coord y) 4228_elm_gengrid_efl_gfx_position_set(Eo *obj, Elm_Gengrid_Data *sd, Eina_Position2D pos)
4229{ 4229{
4230 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 4230 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
4231 return; 4231 return;
4232 4232
4233 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 4233 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
4234 4234 efl_gfx_position_set(sd->hit_rect, pos);
4235 evas_object_move(sd->hit_rect, x, y);
4236} 4235}
4237 4236
4238EOLIAN static void 4237EOLIAN static void
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index a8800be..d66f11d 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -273,12 +273,12 @@ _elm_genlist_pan_efl_canvas_group_group_del(Eo *obj, Elm_Genlist_Pan_Data *psd)
273} 273}
274 274
275EOLIAN static void 275EOLIAN static void
276_elm_genlist_pan_efl_gfx_position_set(Eo *obj, Elm_Genlist_Pan_Data *psd, Evas_Coord x, Evas_Coord y) 276_elm_genlist_pan_efl_gfx_position_set(Eo *obj, Elm_Genlist_Pan_Data *psd, Eina_Position2D pos)
277{ 277{
278 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 278 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
279 return; 279 return;
280 280
281 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y); 281 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), pos);
282 282
283 psd->wsd->pan_changed = EINA_TRUE; 283 psd->wsd->pan_changed = EINA_TRUE;
284 evas_object_smart_changed(obj); 284 evas_object_smart_changed(obj);
@@ -5705,14 +5705,13 @@ _elm_genlist_efl_canvas_group_group_del(Eo *obj, Elm_Genlist_Data *sd)
5705} 5705}
5706 5706
5707EOLIAN static void 5707EOLIAN static void
5708_elm_genlist_efl_gfx_position_set(Eo *obj, Elm_Genlist_Data *sd, Evas_Coord x, Evas_Coord y) 5708_elm_genlist_efl_gfx_position_set(Eo *obj, Elm_Genlist_Data *sd, Eina_Position2D pos)
5709{ 5709{
5710 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 5710 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
5711 return; 5711 return;
5712 5712
5713 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 5713 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
5714 5714 efl_gfx_position_set(sd->hit_rect, pos);
5715 evas_object_move(sd->hit_rect, x, y);
5716} 5715}
5717 5716
5718EOLIAN static void 5717EOLIAN static void
diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c
index 0bb2f5e..6b406e0 100644
--- a/src/lib/elementary/elm_hover.c
+++ b/src/lib/elementary/elm_hover.c
@@ -328,7 +328,7 @@ _elm_hover_elm_layout_sizing_eval(Eo *obj, Elm_Hover_Data *sd)
328 if (efl_isa(sd->parent, EFL_UI_WIN_CLASS)) 328 if (efl_isa(sd->parent, EFL_UI_WIN_CLASS))
329 { 329 {
330 if (efl_canvas_object_is_frame_object_get(obj)) 330 if (efl_canvas_object_is_frame_object_get(obj))
331 efl_gfx_position_get(obj, &x, &y); 331 evas_object_geometry_get(obj, &x, &y, NULL, NULL);
332 else 332 else
333 { 333 {
334 x = 0; 334 x = 0;
@@ -631,12 +631,12 @@ _elm_hover_efl_canvas_group_group_del(Eo *obj, Elm_Hover_Data *sd)
631} 631}
632 632
633EOLIAN static void 633EOLIAN static void
634_elm_hover_efl_gfx_position_set(Eo *obj, Elm_Hover_Data *_pd EINA_UNUSED, Evas_Coord x, Evas_Coord y) 634_elm_hover_efl_gfx_position_set(Eo *obj, Elm_Hover_Data *_pd EINA_UNUSED, Eina_Position2D pos)
635{ 635{
636 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 636 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
637 return; 637 return;
638 638
639 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 639 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
640 640
641 elm_layout_sizing_eval(obj); 641 elm_layout_sizing_eval(obj);
642} 642}
diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c
index e659c1d..223c1fb 100644
--- a/src/lib/elementary/elm_interface_scrollable.c
+++ b/src/lib/elementary/elm_interface_scrollable.c
@@ -102,15 +102,15 @@ _elm_pan_efl_canvas_group_group_del(Eo *obj, Elm_Pan_Smart_Data *_pd EINA_UNUSED
102} 102}
103 103
104EOLIAN static void 104EOLIAN static void
105_elm_pan_efl_gfx_position_set(Eo *obj, Elm_Pan_Smart_Data *psd, Evas_Coord x, Evas_Coord y) 105_elm_pan_efl_gfx_position_set(Eo *obj, Elm_Pan_Smart_Data *psd, Eina_Position2D pos)
106{ 106{
107 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 107 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
108 return; 108 return;
109 109
110 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y); 110 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), pos);
111 111
112 psd->x = x; 112 psd->x = pos.x;
113 psd->y = y; 113 psd->y = pos.y;
114 114
115 _elm_pan_update(psd); 115 _elm_pan_update(psd);
116} 116}
diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c
index 2d115a0..e740b38 100644
--- a/src/lib/elementary/elm_list.c
+++ b/src/lib/elementary/elm_list.c
@@ -2490,14 +2490,13 @@ _elm_list_efl_canvas_group_group_del(Eo *obj, Elm_List_Data *sd)
2490} 2490}
2491 2491
2492EOLIAN static void 2492EOLIAN static void
2493_elm_list_efl_gfx_position_set(Eo *obj, Elm_List_Data *sd, Evas_Coord x, Evas_Coord y) 2493_elm_list_efl_gfx_position_set(Eo *obj, Elm_List_Data *sd, Eina_Position2D pos)
2494{ 2494{
2495 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 2495 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
2496 return; 2496 return;
2497 2497
2498 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 2498 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
2499 2499 efl_gfx_position_set(sd->hit_rect, pos);
2500 evas_object_move(sd->hit_rect, x, y);
2501} 2500}
2502 2501
2503EOLIAN static void 2502EOLIAN static void
diff --git a/src/lib/elementary/elm_map.c b/src/lib/elementary/elm_map.c
index c22f6d9..e42a6a0 100644
--- a/src/lib/elementary/elm_map.c
+++ b/src/lib/elementary/elm_map.c
@@ -3932,12 +3932,12 @@ _elm_map_pan_efl_canvas_group_group_calculate(Eo *obj, Elm_Map_Pan_Data *psd)
3932} 3932}
3933 3933
3934EOLIAN static void 3934EOLIAN static void
3935_elm_map_pan_efl_gfx_position_set(Eo *obj, Elm_Map_Pan_Data *_pd EINA_UNUSED, Evas_Coord x, Evas_Coord y) 3935_elm_map_pan_efl_gfx_position_set(Eo *obj, Elm_Map_Pan_Data *_pd EINA_UNUSED, Eina_Position2D pos)
3936{ 3936{
3937 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 3937 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
3938 return; 3938 return;
3939 3939
3940 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y); 3940 efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), pos);
3941 evas_object_smart_changed(obj); 3941 evas_object_smart_changed(obj);
3942} 3942}
3943 3943
@@ -4249,14 +4249,13 @@ _elm_map_efl_canvas_group_group_del(Eo *obj, Elm_Map_Data *sd)
4249} 4249}
4250 4250
4251EOLIAN static void 4251EOLIAN static void
4252_elm_map_efl_gfx_position_set(Eo *obj, Elm_Map_Data *sd, Evas_Coord x, Evas_Coord y) 4252_elm_map_efl_gfx_position_set(Eo *obj, Elm_Map_Data *sd, Eina_Position2D pos)
4253{ 4253{
4254 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 4254 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
4255 return; 4255 return;
4256 4256
4257 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 4257 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
4258 4258 efl_gfx_position_set(sd->hit_rect, pos);
4259 evas_object_move(sd->hit_rect, x, y);
4260} 4259}
4261 4260
4262EOLIAN static void 4261EOLIAN static void
diff --git a/src/lib/elementary/elm_mapbuf.c b/src/lib/elementary/elm_mapbuf.c
index 8ae1058..f0212e1 100644
--- a/src/lib/elementary/elm_mapbuf.c
+++ b/src/lib/elementary/elm_mapbuf.c
@@ -156,12 +156,12 @@ _mapbuf_auto_smooth(Evas_Object *obj EINA_UNUSED, Elm_Mapbuf_Data *sd)
156} 156}
157 157
158EOLIAN static void 158EOLIAN static void
159_elm_mapbuf_efl_gfx_position_set(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Coord x, Evas_Coord y) 159_elm_mapbuf_efl_gfx_position_set(Eo *obj, Elm_Mapbuf_Data *sd, Eina_Position2D pos)
160{ 160{
161 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 161 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
162 return; 162 return;
163 163
164 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 164 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
165 165
166 _mapbuf_auto_eval(obj, sd); 166 _mapbuf_auto_eval(obj, sd);
167 _mapbuf_auto_smooth(obj, sd); 167 _mapbuf_auto_smooth(obj, sd);
diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c
index c32e7a8..d188a04 100644
--- a/src/lib/elementary/elm_menu.c
+++ b/src/lib/elementary/elm_menu.c
@@ -97,17 +97,20 @@ _elm_menu_item_elm_widget_item_signal_emit(Eo *eo_item EINA_UNUSED, Elm_Menu_Ite
97static inline void 97static inline void
98_parent_geometry_get(Elm_Menu_Data *sd, int *x, int *y, int *w, int *h) 98_parent_geometry_get(Elm_Menu_Data *sd, int *x, int *y, int *w, int *h)
99{ 99{
100 evas_object_geometry_get(sd->parent, x, y, w, h); 100 Eina_Rect r;
101
102 r = efl_gfx_geometry_get(sd->parent);
101 if (efl_isa(sd->parent, EFL_UI_WIN_CLASS)) 103 if (efl_isa(sd->parent, EFL_UI_WIN_CLASS))
102 { 104 {
103 if (sd->menu_bar && efl_canvas_object_is_frame_object_get(sd->obj)) 105 if (sd->menu_bar && efl_canvas_object_is_frame_object_get(sd->obj))
104 efl_gfx_position_get(sd->obj, x, y); 106 r.pos = efl_gfx_position_get(sd->obj);
105 else 107 else
106 { 108 r.pos = EINA_POSITION2D(0, 0);
107 if (x) *x = 0;
108 if (y) *y = 0;
109 }
110 } 109 }
110 if (x) *x = r.x;
111 if (y) *y = r.y;
112 if (w) *w = r.w;
113 if (h) *h = r.h;
111} 114}
112 115
113static void 116static void
diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c
index 89f621c..77b5b98 100644
--- a/src/lib/elementary/elm_notify.c
+++ b/src/lib/elementary/elm_notify.c
@@ -237,27 +237,27 @@ _elm_notify_efl_gfx_size_set(Eo *obj, Elm_Notify_Data *sd, Evas_Coord w, Evas_Co
237 237
238 if (!sd->parent && sd->content) 238 if (!sd->parent && sd->content)
239 { 239 {
240 Evas_Coord x, y; 240 Eina_Position2D pos;
241 241
242 efl_gfx_position_get(obj, &x, &y); 242 pos = efl_gfx_position_get(obj);
243 _notify_move_to_orientation(obj, x, y, w, h); 243 _notify_move_to_orientation(obj, pos.x, pos.y, w, h);
244 } 244 }
245} 245}
246 246
247EOLIAN static void 247EOLIAN static void
248_elm_notify_efl_gfx_position_set(Eo *obj, Elm_Notify_Data *sd, Evas_Coord x, Evas_Coord y) 248_elm_notify_efl_gfx_position_set(Eo *obj, Elm_Notify_Data *sd, Eina_Position2D pos)
249{ 249{
250 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 250 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
251 return; 251 return;
252 252
253 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 253 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
254 254
255 if (!sd->parent && sd->content) 255 if (!sd->parent && sd->content)
256 { 256 {
257 Evas_Coord w, h; 257 Evas_Coord w, h;
258 258
259 evas_object_geometry_get(obj, NULL, NULL, &w, &h); 259 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
260 _notify_move_to_orientation(obj, x, y, w, h); 260 _notify_move_to_orientation(obj, pos.x, pos.y, w, h);
261 } 261 }
262} 262}
263 263
diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c
index 219315f..ba4fa2b 100644
--- a/src/lib/elementary/elm_panel.c
+++ b/src/lib/elementary/elm_panel.c
@@ -934,14 +934,13 @@ _elm_panel_efl_canvas_group_group_del(Eo *obj, Elm_Panel_Data *sd)
934} 934}
935 935
936EOLIAN static void 936EOLIAN static void
937_elm_panel_efl_gfx_position_set(Eo *obj, Elm_Panel_Data *sd, Evas_Coord x, Evas_Coord y) 937_elm_panel_efl_gfx_position_set(Eo *obj, Elm_Panel_Data *sd, Eina_Position2D pos)
938{ 938{
939 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 939 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
940 return; 940 return;
941 941
942 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 942 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
943 943 efl_gfx_position_set(sd->hit_rect, pos);
944 evas_object_move(sd->hit_rect, x, y);
945} 944}
946 945
947static void 946static void
diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c
index 95f2694..002c467 100644
--- a/src/lib/elementary/elm_scroller.c
+++ b/src/lib/elementary/elm_scroller.c
@@ -951,14 +951,13 @@ _elm_scroller_efl_canvas_group_group_add(Eo *obj, Elm_Scroller_Data *priv)
951} 951}
952 952
953EOLIAN static void 953EOLIAN static void
954_elm_scroller_efl_gfx_position_set(Eo *obj, Elm_Scroller_Data *sd, Evas_Coord x, Evas_Coord y) 954_elm_scroller_efl_gfx_position_set(Eo *obj, Elm_Scroller_Data *sd, Eina_Position2D pos)
955{ 955{
956 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 956 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
957 return; 957 return;
958 958
959 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 959 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
960 960 efl_gfx_position_set(sd->hit_rect, pos);
961 evas_object_move(sd->hit_rect, x, y);
962} 961}
963 962
964EOLIAN static void 963EOLIAN static void
diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c
index 91f126c..e43f788 100644
--- a/src/lib/elementary/elm_toolbar.c
+++ b/src/lib/elementary/elm_toolbar.c
@@ -2904,14 +2904,13 @@ _elm_toolbar_efl_canvas_group_group_del(Eo *obj, Elm_Toolbar_Data *sd)
2904} 2904}
2905 2905
2906EOLIAN static void 2906EOLIAN static void
2907_elm_toolbar_efl_gfx_position_set(Eo *obj, Elm_Toolbar_Data *sd, Evas_Coord x, Evas_Coord y) 2907_elm_toolbar_efl_gfx_position_set(Eo *obj, Elm_Toolbar_Data *sd, Eina_Position2D pos)
2908{ 2908{
2909 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 2909 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
2910 return; 2910 return;
2911 2911
2912 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 2912 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
2913 2913 efl_gfx_position_set(sd->hit_rect, pos);
2914 evas_object_move(sd->hit_rect, x, y);
2915} 2914}
2916 2915
2917EOLIAN static void 2916EOLIAN static void
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 4c02e6f..8ea3085 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -832,16 +832,16 @@ _smart_reconfigure(Elm_Widget_Smart_Data *sd)
832} 832}
833 833
834EOLIAN static void 834EOLIAN static void
835_elm_widget_efl_gfx_position_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, Evas_Coord x, Evas_Coord y) 835_elm_widget_efl_gfx_position_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, Eina_Position2D pos)
836{ 836{
837 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 837 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
838 return; 838 return;
839 839
840 sd->x = x; 840 sd->x = pos.x;
841 sd->y = y; 841 sd->y = pos.y;
842 _smart_reconfigure(sd); 842 _smart_reconfigure(sd);
843 843
844 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 844 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
845} 845}
846 846
847EOLIAN static void 847EOLIAN static void
diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c
index 009e38f..549f82a 100644
--- a/src/lib/emotion/emotion_smart.c
+++ b/src/lib/emotion/emotion_smart.c
@@ -1954,17 +1954,17 @@ _efl_canvas_video_efl_canvas_group_group_del(Evas_Object *obj EINA_UNUSED, Efl_C
1954} 1954}
1955 1955
1956EOLIAN static void 1956EOLIAN static void
1957_efl_canvas_video_efl_gfx_position_set(Evas_Object *obj, Efl_Canvas_Video_Data *sd, Evas_Coord x, Evas_Coord y) 1957_efl_canvas_video_efl_gfx_position_set(Evas_Object *obj, Efl_Canvas_Video_Data *sd, Eina_Position2D pos)
1958{ 1958{
1959 int w, h; 1959 int w, h;
1960 1960
1961 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 1961 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
1962 return; 1962 return;
1963 1963
1964 efl_gfx_size_get(obj, &w, &h); 1964 efl_gfx_size_get(obj, &w, &h);
1965 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 1965 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
1966 1966
1967 _clipper_position_size_update(obj, x, y, w, h, sd->video.w, sd->video.h); 1967 _clipper_position_size_update(obj, pos.x, pos.y, w, h, sd->video.w, sd->video.h);
1968} 1968}
1969 1969
1970EOLIAN static void 1970EOLIAN static void
diff --git a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c
index 35f4b3b..590a3f4 100644
--- a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c
+++ b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c
@@ -274,10 +274,10 @@ _efl_canvas_object_event_grabber_efl_canvas_group_group_need_recalculate_get(Eo
274} 274}
275 275
276EOLIAN static void 276EOLIAN static void
277_efl_canvas_object_event_grabber_efl_gfx_position_set(Eo *eo_obj, Efl_Object_Event_Grabber_Data *pd, int x, int y) 277_efl_canvas_object_event_grabber_efl_gfx_position_set(Eo *eo_obj, Efl_Object_Event_Grabber_Data *pd, Eina_Position2D pos)
278{ 278{
279 efl_gfx_position_set(efl_super(eo_obj, MY_CLASS), x, y); 279 efl_gfx_position_set(efl_super(eo_obj, MY_CLASS), pos);
280 efl_gfx_position_set(pd->rect, x, y); 280 efl_gfx_position_set(pd->rect, pos);
281} 281}
282 282
283EOLIAN static void 283EOLIAN static void
diff --git a/src/lib/evas/canvas/evas_object_box.c b/src/lib/evas/canvas/evas_object_box.c
index 4673a7c..adae4b2 100644
--- a/src/lib/evas/canvas/evas_object_box.c
+++ b/src/lib/evas/canvas/evas_object_box.c
@@ -442,12 +442,12 @@ _evas_box_efl_gfx_size_set(Eo *o, Evas_Object_Box_Data *_pd EINA_UNUSED, Evas_Co
442} 442}
443 443
444EOLIAN static void 444EOLIAN static void
445_evas_box_efl_gfx_position_set(Eo *o, Evas_Object_Box_Data *_pd EINA_UNUSED, Evas_Coord x, Evas_Coord y) 445_evas_box_efl_gfx_position_set(Eo *o, Evas_Object_Box_Data *_pd EINA_UNUSED, Eina_Position2D pos)
446{ 446{
447 if (_evas_object_intercept_call(o, EVAS_OBJECT_INTERCEPT_CB_MOVE , 0, x, y)) 447 if (_evas_object_intercept_call(o, EVAS_OBJECT_INTERCEPT_CB_MOVE , 0, pos))
448 return; 448 return;
449 449
450 efl_gfx_position_set(efl_super(o, MY_CLASS), x, y); 450 efl_gfx_position_set(efl_super(o, MY_CLASS), pos);
451 evas_object_smart_changed(o); 451 evas_object_smart_changed(o);
452} 452}
453 453
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index 4fc7a13..f21fea1 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -1158,7 +1158,7 @@ end:
1158EOLIAN static void 1158EOLIAN static void
1159_efl_canvas_object_efl_gfx_geometry_set(Eo *obj, Evas_Object_Protected_Data *pd EINA_UNUSED, Eina_Rect r) 1159_efl_canvas_object_efl_gfx_geometry_set(Eo *obj, Evas_Object_Protected_Data *pd EINA_UNUSED, Eina_Rect r)
1160{ 1160{
1161 efl_gfx_position_set(obj, r.x, r.y); 1161 efl_gfx_position_set(obj, r.pos);
1162 efl_gfx_size_set(obj, r.w, r.h); 1162 efl_gfx_size_set(obj, r.w, r.h);
1163} 1163}
1164 1164
@@ -1174,17 +1174,18 @@ evas_object_geometry_set(Evas_Object *eo_obj, Evas_Coord x, Evas_Coord y, Evas_C
1174EAPI void 1174EAPI void
1175evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) 1175evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
1176{ 1176{
1177 efl_gfx_position_set((Evas_Object *)obj, x, y); 1177 efl_gfx_position_set(obj, EINA_POSITION2D(x, y));
1178} 1178}
1179 1179
1180EOLIAN static void 1180EOLIAN static void
1181_efl_canvas_object_efl_gfx_position_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, 1181_efl_canvas_object_efl_gfx_position_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Eina_Position2D pos)
1182 Evas_Coord x, Evas_Coord y)
1183{ 1182{
1184 Eina_Bool pass = EINA_FALSE, freeze = EINA_FALSE; 1183 Eina_Bool pass = EINA_FALSE, freeze = EINA_FALSE;
1185 Eina_Bool source_invisible = EINA_FALSE; 1184 Eina_Bool source_invisible = EINA_FALSE;
1186 Eina_List *was = NULL; 1185 Eina_List *was = NULL;
1187 Evas_Map *map; 1186 Evas_Map *map;
1187 int x = pos.x;
1188 int y = pos.y;
1188 1189
1189 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 1, x, y)) 1190 if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 1, x, y))
1190 return; 1191 return;
@@ -1332,20 +1333,14 @@ evas_object_geometry_get(const Evas_Object *eo_obj, Evas_Coord *x, Evas_Coord *y
1332 if (h) *h = r.h; 1333 if (h) *h = r.h;
1333} 1334}
1334 1335
1335EOLIAN static void 1336EOLIAN static Eina_Position2D
1336_efl_canvas_object_efl_gfx_position_get(Eo *obj EINA_UNUSED, 1337_efl_canvas_object_efl_gfx_position_get(Eo *obj EINA_UNUSED,
1337 Evas_Object_Protected_Data *pd, 1338 Evas_Object_Protected_Data *pd)
1338 Evas_Coord *x, Evas_Coord *y)
1339{ 1339{
1340 if ((pd->delete_me) || (!pd->layer)) 1340 if ((pd->delete_me) || (!pd->layer))
1341 { 1341 return EINA_POSITION2D(0, 0);
1342 if (x) *x = 0;
1343 if (y) *y = 0;
1344 return;
1345 }
1346 1342
1347 if (x) *x = pd->cur->geometry.x; 1343 return ((Eina_Rect) pd->cur->geometry).pos;
1348 if (y) *y = pd->cur->geometry.y;
1349} 1344}
1350 1345
1351EOLIAN static void 1346EOLIAN static void
@@ -2060,11 +2055,10 @@ _efl_canvas_object_efl_object_dbg_info_get(Eo *eo_obj, Evas_Object_Protected_Dat
2060 double scale; 2055 double scale;
2061 unsigned int m; 2056 unsigned int m;
2062 int r, g, b, a; 2057 int r, g, b, a;
2063 int w, h;
2064 //int requestw, requesth; 2058 //int requestw, requesth;
2065 int minw, minh; 2059 int minw, minh;
2066 int maxw, maxh; 2060 int maxw, maxh;
2067 int x, y; 2061 Eina_Rect geom;
2068 short layer; 2062 short layer;
2069 Eina_Bool focus; 2063 Eina_Bool focus;
2070 Eina_Bool visible; 2064 Eina_Bool visible;
@@ -2076,8 +2070,7 @@ _efl_canvas_object_efl_object_dbg_info_get(Eo *eo_obj, Evas_Object_Protected_Dat
2076 visible = efl_gfx_visible_get(eo_obj); 2070 visible = efl_gfx_visible_get(eo_obj);
2077 layer = efl_gfx_stack_layer_get(eo_obj); 2071 layer = efl_gfx_stack_layer_get(eo_obj);
2078 name = efl_name_get(eo_obj); // evas_object_name_get(eo_obj); 2072 name = efl_name_get(eo_obj); // evas_object_name_get(eo_obj);
2079 efl_gfx_position_get(eo_obj, &x, &y); 2073 geom = efl_gfx_geometry_get(eo_obj);
2080 efl_gfx_size_get(eo_obj, &w, &h);
2081 scale = efl_canvas_object_scale_get(eo_obj); 2074 scale = efl_canvas_object_scale_get(eo_obj);
2082 efl_gfx_size_hint_restricted_min_get(eo_obj, &minw, &minh); 2075 efl_gfx_size_hint_restricted_min_get(eo_obj, &minw, &minh);
2083 efl_gfx_size_hint_max_get(eo_obj, &maxw, &maxh); 2076 efl_gfx_size_hint_max_get(eo_obj, &maxw, &maxh);
@@ -2100,12 +2093,12 @@ _efl_canvas_object_efl_object_dbg_info_get(Eo *eo_obj, Evas_Object_Protected_Dat
2100 EFL_DBG_INFO_APPEND(group, "Layer", EINA_VALUE_TYPE_INT, layer); 2093 EFL_DBG_INFO_APPEND(group, "Layer", EINA_VALUE_TYPE_INT, layer);
2101 2094
2102 node = EFL_DBG_INFO_LIST_APPEND(group, "Position"); 2095 node = EFL_DBG_INFO_LIST_APPEND(group, "Position");
2103 EFL_DBG_INFO_APPEND(node, "x", EINA_VALUE_TYPE_INT, x); 2096 EFL_DBG_INFO_APPEND(node, "x", EINA_VALUE_TYPE_INT, geom.x);
2104 EFL_DBG_INFO_APPEND(node, "y", EINA_VALUE_TYPE_INT, y); 2097 EFL_DBG_INFO_APPEND(node, "y", EINA_VALUE_TYPE_INT, geom.y);
2105 2098
2106 node = EFL_DBG_INFO_LIST_APPEND(group, "Size"); 2099 node = EFL_DBG_INFO_LIST_APPEND(group, "Size");
2107 EFL_DBG_INFO_APPEND(node, "w", EINA_VALUE_TYPE_INT, w); 2100 EFL_DBG_INFO_APPEND(node, "w", EINA_VALUE_TYPE_INT, geom.w);
2108 EFL_DBG_INFO_APPEND(node, "h", EINA_VALUE_TYPE_INT, h); 2101 EFL_DBG_INFO_APPEND(node, "h", EINA_VALUE_TYPE_INT, geom.h);
2109 2102
2110 EFL_DBG_INFO_APPEND(group, "Scale", EINA_VALUE_TYPE_DOUBLE, scale); 2103 EFL_DBG_INFO_APPEND(group, "Scale", EINA_VALUE_TYPE_DOUBLE, scale);
2111 2104
diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c
index 31004ba..411bbef 100644
--- a/src/lib/evas/canvas/evas_object_smart.c
+++ b/src/lib/evas/canvas/evas_object_smart.c
@@ -886,14 +886,14 @@ _efl_canvas_group_efl_gfx_visible_set(Eo *eo_obj, Evas_Smart_Data *o, Eina_Bool
886} 886}
887 887
888EOLIAN static void 888EOLIAN static void
889_efl_canvas_group_efl_gfx_position_set(Eo *eo_obj, Evas_Smart_Data *o, Evas_Coord x, Evas_Coord y) 889_efl_canvas_group_efl_gfx_position_set(Eo *eo_obj, Evas_Smart_Data *o, Eina_Position2D pos)
890{ 890{
891 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 891 if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
892 return; 892 return;
893 893
894 if (o->clipped) 894 if (o->clipped)
895 _evas_object_smart_clipped_smart_move_internal(eo_obj, x, y); 895 _evas_object_smart_clipped_smart_move_internal(eo_obj, pos.x, pos.y);
896 efl_gfx_position_set(efl_super(eo_obj, MY_CLASS), x, y); 896 efl_gfx_position_set(efl_super(eo_obj, MY_CLASS), pos);
897} 897}
898 898
899EOLIAN static void 899EOLIAN static void
diff --git a/src/lib/evas/canvas/evas_object_table.c b/src/lib/evas/canvas/evas_object_table.c
index cfbb8bc..bd4c2cc 100644
--- a/src/lib/evas/canvas/evas_object_table.c
+++ b/src/lib/evas/canvas/evas_object_table.c
@@ -944,12 +944,12 @@ _evas_table_efl_gfx_size_set(Eo *obj, Evas_Table_Data *_pd EINA_UNUSED, Evas_Coo
944} 944}
945 945
946EOLIAN static void 946EOLIAN static void
947_evas_table_efl_gfx_position_set(Eo *obj, Evas_Table_Data *_pd EINA_UNUSED, Evas_Coord x, Evas_Coord y) 947_evas_table_efl_gfx_position_set(Eo *obj, Evas_Table_Data *_pd EINA_UNUSED, Eina_Position2D pos)
948{ 948{
949 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y)) 949 if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
950 return; 950 return;
951 951
952 efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); 952 efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
953 evas_object_smart_changed(obj); 953 evas_object_smart_changed(obj);
954} 954}
955 955
diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c
index 11937fa..20b0a79 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -7922,18 +7922,16 @@ evas_textblock_text_utf8_to_markup(const Evas_Object *eo_obj, const char *text)
7922static void 7922static void
7923_obstacle_update(Evas_Textblock_Obstacle *obs, Eo *eo_obj) 7923_obstacle_update(Evas_Textblock_Obstacle *obs, Eo *eo_obj)
7924{ 7924{
7925 Evas_Coord x, y; 7925 Eina_Rect tb_geom, obs_geom;
7926 Evas_Coord ox, oy, ow, oh;
7927 Eo *eo_obs = obs->eo_obs; 7926 Eo *eo_obs = obs->eo_obs;
7928 7927
7929 efl_gfx_position_get(eo_obs, &ox, &oy); 7928 obs_geom = efl_gfx_geometry_get(eo_obs);
7930 efl_gfx_size_get(eo_obs, &ow, &oh); 7929 tb_geom = efl_gfx_geometry_get(eo_obj);
7931 efl_gfx_position_get(eo_obj, &x, &y);
7932 7930
7933 obs->x = ox - x; 7931 obs->x = obs_geom.x - tb_geom.x;
7934 obs->y = oy - y; 7932 obs->y = obs_geom.y - tb_geom.y;
7935 obs->w = ow; 7933 obs->w = obs_geom.w;
7936 obs->h = oh; 7934 obs->h = obs_geom.h;
7937} 7935}
7938 7936
7939static void 7937static void
diff --git a/src/lib/evas/canvas/evas_vg_node.c b/src/lib/evas/canvas/evas_vg_node.c
index dd32a50..f983f8d 100644
--- a/src/lib/evas/canvas/evas_vg_node.c
+++ b/src/lib/evas/canvas/evas_vg_node.c
@@ -86,23 +86,19 @@ _efl_vg_origin_get(Eo *obj EINA_UNUSED,
86} 86}
87 87
88static void 88static void
89_efl_vg_efl_gfx_position_set(Eo *obj EINA_UNUSED, 89_efl_vg_efl_gfx_position_set(Eo *obj EINA_UNUSED, Efl_VG_Data *pd, Eina_Position2D pos)
90 Efl_VG_Data *pd,
91 int x, int y)
92{ 90{
93 pd->x = lrint(x); 91 pd->x = (double) pos.x;
94 pd->y = lrint(y); 92 pd->y = (double) pos.y;
95 93
96 _efl_vg_changed(obj); 94 _efl_vg_changed(obj);
97} 95}
98 96
99static void 97static Eina_Position2D
100_efl_vg_efl_gfx_position_get(Eo *obj EINA_UNUSED, 98_efl_vg_efl_gfx_position_get(Eo *obj EINA_UNUSED, Efl_VG_Data *pd)
101 Efl_VG_Data *pd,
102 int *x, int *y)
103{ 99{
104 if (x) *x = pd->x; 100 // NOTE: This casts double to int!
105 if (y) *y = pd->y; 101 return EINA_POSITION2D(pd->x, pd->y);
106} 102}
107 103
108static void 104static void
@@ -205,7 +201,7 @@ EOLIAN static Eina_Rect
205_efl_vg_efl_gfx_geometry_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) 201_efl_vg_efl_gfx_geometry_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED)
206{ 202{
207 Eina_Rect r = EINA_RECT_ZERO(); 203 Eina_Rect r = EINA_RECT_ZERO();
208 efl_gfx_position_get(obj, &r.x, &r.y); 204 r.pos = efl_gfx_position_get(obj);
209 efl_gfx_size_get(obj, &r.w, &r.h); 205 efl_gfx_size_get(obj, &r.w, &r.h);
210 return r; 206 return r;
211} 207}
@@ -810,14 +806,17 @@ evas_vg_node_color_set(Eo *obj, int r, int g, int b, int a)
810EAPI void 806EAPI void
811evas_vg_node_geometry_get(Eo *obj, int *x, int *y, int *w, int *h) 807evas_vg_node_geometry_get(Eo *obj, int *x, int *y, int *w, int *h)
812{ 808{
813 efl_gfx_position_get(obj, x, y); 809 Eina_Rect r;
810 r.pos = efl_gfx_position_get(obj);
814 efl_gfx_size_get(obj, w, h); 811 efl_gfx_size_get(obj, w, h);
812 if (x) *x = r.x;
813 if (y) *y = r.y;
815} 814}
816 815
817EAPI void 816EAPI void
818evas_vg_node_geometry_set(Eo *obj, int x, int y, int w, int h) 817evas_vg_node_geometry_set(Eo *obj, int x, int y, int w, int h)
819{ 818{
820 efl_gfx_position_set(obj, x, y); 819 efl_gfx_position_set(obj, EINA_POSITION2D(x, y));
821 efl_gfx_size_set(obj, w, h); 820 efl_gfx_size_set(obj, w, h);
822} 821}
823 822
diff --git a/src/tests/emotion/emotion_test_main-eo.c b/src/tests/emotion/emotion_test_main-eo.c
index 0f33f5a..9663ab7 100644
--- a/src/tests/emotion/emotion_test_main-eo.c
+++ b/src/tests/emotion/emotion_test_main-eo.c
@@ -113,7 +113,7 @@ bg_setup(void)
113{ 113{
114 o_bg = efl_add(EDJE_OBJECT_CLASS, evas); 114 o_bg = efl_add(EDJE_OBJECT_CLASS, evas);
115 efl_file_set(o_bg, theme_file, "background"); 115 efl_file_set(o_bg, theme_file, "background");
116 efl_gfx_position_set(o_bg, 0, 0); 116 efl_gfx_position_set(o_bg, EINA_POSITION2D(0, 0));
117 efl_gfx_size_set(o_bg, startw, starth); 117 efl_gfx_size_set(o_bg, startw, starth);
118 efl_gfx_stack_layer_set(o_bg, -999); 118 efl_gfx_stack_layer_set(o_bg, -999);
119 efl_gfx_visible_set(o_bg, EINA_TRUE); 119 efl_gfx_visible_set(o_bg, EINA_TRUE);
@@ -553,11 +553,14 @@ video_obj_signal_frame_move_cb(void *data EINA_UNUSED, Evas_Object *o, const cha
553 if (!fd) return; 553 if (!fd) return;
554 if (fd->moving) 554 if (fd->moving)
555 { 555 {
556 Evas_Coord x, y, ox, oy; 556 Evas_Coord x, y;
557 Eina_Position2D pos;
557 558
558 evas_canvas_pointer_canvas_xy_get(evas_object_evas_get(o), &x, &y); 559 evas_canvas_pointer_canvas_xy_get(evas_object_evas_get(o), &x, &y);
559 efl_gfx_position_get(o, &ox, &oy); 560 pos = efl_gfx_position_get(o);
560 efl_gfx_position_set(o, ox + (x - fd->x), oy + (y - fd->y)); 561 pos.x += (x - fd->x);
562 pos.y += (y - fd->y);
563 efl_gfx_position_set(o, pos);
561 fd->x = x; 564 fd->x = x;
562 fd->y = y; 565 fd->y = y;
563 } 566 }
@@ -624,7 +627,7 @@ init_video_object(const char *module_filename, const char *filename)
624 edje_object_part_swallow(oe, "video_swallow", o); 627 edje_object_part_swallow(oe, "video_swallow", o);
625 628
626 offset = 20 * (eina_list_count(video_objs) - 1); 629 offset = 20 * (eina_list_count(video_objs) - 1);
627 efl_gfx_position_set(oe, offset, offset); 630 efl_gfx_position_set(oe, EINA_POSITION2D(offset, offset));
628 edje_object_size_min_calc(oe, &w, &h); 631 edje_object_size_min_calc(oe, &w, &h);
629 efl_gfx_size_set(oe, w, h); 632 efl_gfx_size_set(oe, w, h);
630 633