summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2017-09-14 11:59:44 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2017-09-18 13:22:52 +0900
commitf3eff6eb3ee6e9b56c0be5cd7f8905f14b388e4f (patch)
tree473b3d1b3e56cc5875d4496bf40fe8279165e132 /src/lib
parentcb3b4cc8d7794bea575a85325c8a58f25f0507b2 (diff)
efl: Introduce Eina.Rect and switch EO APIs to it
It's a complex struct but defined in EO as a simple struct. ABI-wise it's equivalent to Eina_Rectangle. Some macros that use Eina_Rectangle also work on Eina_Rect out of the box, most of the code dealing with x,y,w,h will require no modifications either. But Eina_Rect provides direct access to a size or position 2d component, as well as the usual x,y,w,h. The field "rect" is provided as a convenience for code dealing with both Eina_Rectangle and Eina_Rect. We may or may not require it. Note: Size2D could use unsigned values but I have spotted a few places in the code that actually use -1 to indicate invalid size (as opposed to 0x0). @feature
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/ecore_evas/ecore_evas.c4
-rw-r--r--src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c4
-rw-r--r--src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c4
-rw-r--r--src/lib/ector/cairo/ector_renderer_cairo_shape.c2
-rw-r--r--src/lib/ector/ector_renderer.eo4
-rw-r--r--src/lib/ector/gl/ector_gl_surface.eo2
-rw-r--r--src/lib/ector/gl/ector_renderer_gl_gradient_linear.c4
-rw-r--r--src/lib/ector/gl/ector_renderer_gl_gradient_radial.c4
-rw-r--r--src/lib/ector/gl/ector_renderer_gl_shape.c4
-rw-r--r--src/lib/edje/edje_calc.c4
-rw-r--r--src/lib/edje/edje_legacy.c2
-rw-r--r--src/lib/edje/edje_part.c6
-rw-r--r--src/lib/edje/efl_canvas_layout_calc.eo2
-rw-r--r--src/lib/efl/interfaces/efl_animator.eo2
-rw-r--r--src/lib/efl/interfaces/efl_gfx.eo2
-rw-r--r--src/lib/efl/interfaces/efl_gfx_fill.eo2
-rw-r--r--src/lib/efl/interfaces/efl_gfx_path.c4
-rw-r--r--src/lib/efl/interfaces/efl_gfx_path.eo2
-rw-r--r--src/lib/efl/interfaces/efl_gfx_types.eot2
-rw-r--r--src/lib/eina/eina_rectangle.h30
-rw-r--r--src/lib/elementary/efl_access_component.c18
-rw-r--r--src/lib/elementary/efl_access_component.eo2
-rw-r--r--src/lib/elementary/efl_ui_focus_manager_calc.c18
-rw-r--r--src/lib/elementary/efl_ui_focus_object.eo2
-rw-r--r--src/lib/elementary/efl_ui_text.c16
-rw-r--r--src/lib/elementary/efl_ui_textpath.c2
-rw-r--r--src/lib/elementary/efl_ui_win.c8
-rw-r--r--src/lib/elementary/elc_multibuttonentry.c7
-rw-r--r--src/lib/elementary/elm_atspi_bridge.c11
-rw-r--r--src/lib/elementary/elm_colorselector.c12
-rw-r--r--src/lib/elementary/elm_conform.c2
-rw-r--r--src/lib/elementary/elm_ctxpopup.eo2
-rw-r--r--src/lib/elementary/elm_entry.c16
-rw-r--r--src/lib/elementary/elm_gengrid.c8
-rw-r--r--src/lib/elementary/elm_genlist.c6
-rw-r--r--src/lib/elementary/elm_interface_atspi_text.eo6
-rw-r--r--src/lib/elementary/elm_list.c10
-rw-r--r--src/lib/elementary/elm_menu.c4
-rw-r--r--src/lib/elementary/elm_panel.c4
-rw-r--r--src/lib/elementary/elm_scroller.c2
-rw-r--r--src/lib/elementary/elm_toolbar.c14
-rw-r--r--src/lib/elementary/elm_transit.c4
-rw-r--r--src/lib/elementary/elm_widget.c28
-rw-r--r--src/lib/elementary/elm_widget.eo10
-rw-r--r--src/lib/elementary/elm_widget.h12
-rw-r--r--src/lib/eo/eina_types.eot24
-rw-r--r--src/lib/evas/canvas/efl_canvas_text.eo4
-rw-r--r--src/lib/evas/canvas/efl_gfx_map.c2
-rw-r--r--src/lib/evas/canvas/efl_vg.eo2
-rw-r--r--src/lib/evas/canvas/evas_canvas.eo8
-rw-r--r--src/lib/evas/canvas/evas_image_legacy.c2
-rw-r--r--src/lib/evas/canvas/evas_object_image.c6
-rw-r--r--src/lib/evas/canvas/evas_object_main.c10
-rw-r--r--src/lib/evas/canvas/evas_object_vg.c4
-rw-r--r--src/lib/evas/canvas/evas_vg_container.c10
-rw-r--r--src/lib/evas/canvas/evas_vg_gradient_linear.c2
-rw-r--r--src/lib/evas/canvas/evas_vg_gradient_radial.c2
-rw-r--r--src/lib/evas/canvas/evas_vg_node.c18
-rw-r--r--src/lib/evas/canvas/evas_vg_private.h2
-rw-r--r--src/lib/evas/canvas/evas_vg_shape.c4
60 files changed, 219 insertions, 195 deletions
diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c
index d95e3bd..8874c34 100644
--- a/src/lib/ecore_evas/ecore_evas.c
+++ b/src/lib/ecore_evas/ecore_evas.c
@@ -3061,7 +3061,7 @@ ecore_evas_animator_tick(Ecore_Evas *ee, Eina_Rectangle *viewport, double loop_t
3061{ 3061{
3062 Ecore_Evas *subee; 3062 Ecore_Evas *subee;
3063 Eina_List *l; 3063 Eina_List *l;
3064 Efl_Event_Animator_Tick a = { { 0, 0, 0, 0 } }; 3064 Efl_Event_Animator_Tick a = { EINA_RECT_ZERO() };
3065 3065
3066 if (!viewport) 3066 if (!viewport)
3067 { 3067 {
@@ -3069,7 +3069,7 @@ ecore_evas_animator_tick(Ecore_Evas *ee, Eina_Rectangle *viewport, double loop_t
3069 } 3069 }
3070 else 3070 else
3071 { 3071 {
3072 a.update_area = *viewport; 3072 a.update_area.rect = *viewport;
3073 } 3073 }
3074 3074
3075 ecore_loop_time_set(loop_time); 3075 ecore_loop_time_set(loop_time);
diff --git a/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c b/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c
index ceccc57..95b4243 100644
--- a/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c
+++ b/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c
@@ -114,8 +114,8 @@ _ector_renderer_cairo_gradient_linear_ector_renderer_cairo_fill(Eo *obj,
114 114
115static void 115static void
116_ector_renderer_cairo_gradient_linear_ector_renderer_bounds_get(Eo *obj, 116_ector_renderer_cairo_gradient_linear_ector_renderer_bounds_get(Eo *obj,
117 Ector_Renderer_Cairo_Gradient_Linear_Data *pd EINA_UNUSED, 117 Ector_Renderer_Cairo_Gradient_Linear_Data *pd EINA_UNUSED,
118 Eina_Rectangle *r) 118 Eina_Rect *r)
119{ 119{
120 Ector_Renderer_Gradient_Linear_Data *gld; 120 Ector_Renderer_Gradient_Linear_Data *gld;
121 Ector_Renderer_Cairo_Data *bd; 121 Ector_Renderer_Cairo_Data *bd;
diff --git a/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c b/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c
index 94225b6..0011968 100644
--- a/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c
+++ b/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c
@@ -120,8 +120,8 @@ _ector_renderer_cairo_gradient_radial_ector_renderer_cairo_fill(Eo *obj,
120 120
121static void 121static void
122_ector_renderer_cairo_gradient_radial_ector_renderer_bounds_get(Eo *obj EINA_UNUSED, 122_ector_renderer_cairo_gradient_radial_ector_renderer_bounds_get(Eo *obj EINA_UNUSED,
123 Ector_Renderer_Cairo_Gradient_Radial_Data *pd EINA_UNUSED, 123 Ector_Renderer_Cairo_Gradient_Radial_Data *pd EINA_UNUSED,
124 Eina_Rectangle *r) 124 Eina_Rect *r)
125{ 125{
126 Ector_Renderer_Gradient_Radial_Data *gld; 126 Ector_Renderer_Gradient_Radial_Data *gld;
127 Ector_Renderer_Cairo_Data *bd; 127 Ector_Renderer_Cairo_Data *bd;
diff --git a/src/lib/ector/cairo/ector_renderer_cairo_shape.c b/src/lib/ector/cairo/ector_renderer_cairo_shape.c
index fb08cec..00bc3d4 100644
--- a/src/lib/ector/cairo/ector_renderer_cairo_shape.c
+++ b/src/lib/ector/cairo/ector_renderer_cairo_shape.c
@@ -233,7 +233,7 @@ _ector_renderer_cairo_shape_ector_renderer_cairo_fill(Eo *obj EINA_UNUSED,
233static void 233static void
234_ector_renderer_cairo_shape_ector_renderer_bounds_get(Eo *obj, 234_ector_renderer_cairo_shape_ector_renderer_bounds_get(Eo *obj,
235 Ector_Renderer_Cairo_Shape_Data *pd EINA_UNUSED, 235 Ector_Renderer_Cairo_Shape_Data *pd EINA_UNUSED,
236 Eina_Rectangle *r) 236 Eina_Rect *r)
237{ 237{
238 Ector_Renderer_Cairo_Data *bd; 238 Ector_Renderer_Cairo_Data *bd;
239 239
diff --git a/src/lib/ector/ector_renderer.eo b/src/lib/ector/ector_renderer.eo
index 67e4f76..0d33f1e 100644
--- a/src/lib/ector/ector_renderer.eo
+++ b/src/lib/ector/ector_renderer.eo
@@ -110,7 +110,7 @@ abstract Ector.Renderer (Efl.Object)
110 bounds_get @pure_virtual { 110 bounds_get @pure_virtual {
111 [[Retrieves the bounds of the renderer]] 111 [[Retrieves the bounds of the renderer]]
112 params { 112 params {
113 @out r: Eina.Rectangle; [[Bounds as @Eina.Rectangle]] 113 @out r: Eina.Rect; [[Bounds as @Eina.Rect]]
114 } 114 }
115 } 115 }
116 draw @pure_virtual { 116 draw @pure_virtual {
@@ -118,7 +118,7 @@ abstract Ector.Renderer (Efl.Object)
118 return: bool; [[$true on success, $false otherwise]] 118 return: bool; [[$true on success, $false otherwise]]
119 params { 119 params {
120 @in op: Efl.Gfx.Render_Op; [[Renderer operation]] 120 @in op: Efl.Gfx.Render_Op; [[Renderer operation]]
121 @in clips: array<ptr(Eina.Rectangle)>; [[Array of @Eina.Rectangle clip]] 121 @in clips: array<ptr(Eina.Rect)>; [[Array of @Eina.Rect clip]]
122 @in mul_col: uint; [[Premultiplied color]] 122 @in mul_col: uint; [[Premultiplied color]]
123 } 123 }
124 } 124 }
diff --git a/src/lib/ector/gl/ector_gl_surface.eo b/src/lib/ector/gl/ector_gl_surface.eo
index 5052571..798befa 100644
--- a/src/lib/ector/gl/ector_gl_surface.eo
+++ b/src/lib/ector/gl/ector_gl_surface.eo
@@ -27,7 +27,7 @@ class Ector.GL.Surface (Ector.GL.Buffer, Ector.Surface)
27 return: bool; [[$true on success, $false otherwise]] 27 return: bool; [[$true on success, $false otherwise]]
28 params { 28 params {
29 @in op: Efl.Gfx.Render_Op; [[Render operation]] 29 @in op: Efl.Gfx.Render_Op; [[Render operation]]
30 @in clips: array<ptr(Eina.Rectangle)>; [[Array of @Eina.Rectangle clip]] 30 @in clips: array<ptr(Eina.Rect)>; [[Array of @Eina.Rect clip]]
31 } 31 }
32 } 32 }
33 } 33 }
diff --git a/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c b/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c
index 69e1c6d..87c5594 100644
--- a/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c
+++ b/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c
@@ -41,8 +41,8 @@ _ector_renderer_gl_gradient_linear_ector_renderer_draw(Eo *obj, Ector_Renderer_G
41 41
42static void 42static void
43_ector_renderer_gl_gradient_linear_ector_renderer_bounds_get(Eo *obj EINA_UNUSED, 43_ector_renderer_gl_gradient_linear_ector_renderer_bounds_get(Eo *obj EINA_UNUSED,
44 Ector_Renderer_GL_Gradient_Linear_Data *pd, 44 Ector_Renderer_GL_Gradient_Linear_Data *pd,
45 Eina_Rectangle *r) 45 Eina_Rect *r)
46{ 46{
47 EINA_RECTANGLE_SET(r, 47 EINA_RECTANGLE_SET(r,
48 pd->base->origin.x + pd->linear->start.x, 48 pd->base->origin.x + pd->linear->start.x,
diff --git a/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c b/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c
index 8760bad..827b120 100644
--- a/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c
+++ b/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c
@@ -55,8 +55,8 @@ _ector_renderer_gl_gradient_radial_ector_renderer_gl_fill(Eo *obj, Ector_Rendere
55 55
56static void 56static void
57_ector_renderer_gl_gradient_radial_ector_renderer_bounds_get(Eo *obj EINA_UNUSED, 57_ector_renderer_gl_gradient_radial_ector_renderer_bounds_get(Eo *obj EINA_UNUSED,
58 Ector_Renderer_GL_Gradient_Radial_Data *pd, 58 Ector_Renderer_GL_Gradient_Radial_Data *pd,
59 Eina_Rectangle *r) 59 Eina_Rect *r)
60{ 60{
61 EINA_RECTANGLE_SET(r, 61 EINA_RECTANGLE_SET(r,
62 pd->base->origin.x + pd->radial->radial.x - pd->radial->radius, 62 pd->base->origin.x + pd->radial->radial.x - pd->radial->radius,
diff --git a/src/lib/ector/gl/ector_renderer_gl_shape.c b/src/lib/ector/gl/ector_renderer_gl_shape.c
index 1329a78..b279129 100644
--- a/src/lib/ector/gl/ector_renderer_gl_shape.c
+++ b/src/lib/ector/gl/ector_renderer_gl_shape.c
@@ -32,7 +32,7 @@ _ector_renderer_gl_shape_path_changed(void *data, const Efl_Event *event EINA_UN
32static Eina_Bool 32static Eina_Bool
33_ector_renderer_gl_shape_ector_renderer_prepare(Eo *obj, Ector_Renderer_GL_Shape_Data *pd) 33_ector_renderer_gl_shape_ector_renderer_prepare(Eo *obj, Ector_Renderer_GL_Shape_Data *pd)
34{ 34{
35 Eina_Rectangle bounding_box; 35 Eina_Rect bounding_box;
36 Eina_Bool r; 36 Eina_Bool r;
37 37
38 if (pd->vertex) return EINA_TRUE; 38 if (pd->vertex) return EINA_TRUE;
@@ -105,7 +105,7 @@ _ector_renderer_gl_shape_ector_renderer_gl_fill(Eo *obj EINA_UNUSED,
105} 105}
106 106
107static void 107static void
108_ector_renderer_gl_shape_ector_renderer_bounds_get(Eo *obj, Ector_Renderer_GL_Shape_Data *pd, Eina_Rectangle *r) 108_ector_renderer_gl_shape_ector_renderer_bounds_get(Eo *obj, Ector_Renderer_GL_Shape_Data *pd, Eina_Rect *r)
109{ 109{
110 efl_gfx_path_bounds_get(obj, r); 110 efl_gfx_path_bounds_get(obj, r);
111 111
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 9bdedca..54aca19 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -3616,7 +3616,7 @@ _edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
3616 } 3616 }
3617 } 3617 }
3618 3618
3619 efl_gfx_fill_set(ep->object, p3->type.common->fill); 3619 efl_gfx_fill_set(ep->object, (Eina_Rect) p3->type.common->fill);
3620 efl_image_smooth_scale_set(ep->object, p3->smooth); 3620 efl_image_smooth_scale_set(ep->object, p3->smooth);
3621 evas_object_image_source_visible_set(ep->object, chosen_desc->proxy.source_visible); 3621 evas_object_image_source_visible_set(ep->object, chosen_desc->proxy.source_visible);
3622 evas_object_image_source_clip_set(ep->object, chosen_desc->proxy.source_clip); 3622 evas_object_image_source_clip_set(ep->object, chosen_desc->proxy.source_clip);
@@ -3656,7 +3656,7 @@ _edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
3656 set->entry->border.scale_by : p3->type.common->spec.image.border_scale_by; 3656 set->entry->border.scale_by : p3->type.common->spec.image.border_scale_by;
3657 } 3657 }
3658 3658
3659 efl_gfx_fill_set(ep->object, p3->type.common->fill); 3659 efl_gfx_fill_set(ep->object, (Eina_Rect) p3->type.common->fill);
3660 efl_image_smooth_scale_set(ep->object, p3->smooth); 3660 efl_image_smooth_scale_set(ep->object, p3->smooth);
3661 if (chosen_desc->image.border.scale) 3661 if (chosen_desc->image.border.scale)
3662 { 3662 {
diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c
index 520f9f0..0756122 100644
--- a/src/lib/edje/edje_legacy.c
+++ b/src/lib/edje/edje_legacy.c
@@ -1101,7 +1101,7 @@ edje_object_size_min_restricted_calc(Edje_Object *obj, int *minw, int *minh, int
1101EAPI Eina_Bool 1101EAPI Eina_Bool
1102edje_object_parts_extends_calc(Edje_Object *obj, int *x, int *y, int *w, int *h) 1102edje_object_parts_extends_calc(Edje_Object *obj, int *x, int *y, int *w, int *h)
1103{ 1103{
1104 Eina_Rectangle r = { 0, }; 1104 Eina_Rect r = EINA_RECT_ZERO();
1105 Edje *ed; 1105 Edje *ed;
1106 1106
1107 ed = _edje_fetch(obj); 1107 ed = _edje_fetch(obj);
diff --git a/src/lib/edje/edje_part.c b/src/lib/edje/edje_part.c
index b9790d8..f5a496d 100644
--- a/src/lib/edje/edje_part.c
+++ b/src/lib/edje/edje_part.c
@@ -100,17 +100,17 @@ _efl_canvas_layout_part_efl_object_finalize(Eo *obj, Efl_Canvas_Layout_Part_Data
100 return efl_finalize(efl_super(obj, MY_CLASS)); 100 return efl_finalize(efl_super(obj, MY_CLASS));
101} 101}
102 102
103EOLIAN Eina_Rectangle 103EOLIAN Eina_Rect
104_efl_canvas_layout_part_efl_gfx_geometry_get(Eo *obj, Efl_Canvas_Layout_Part_Data *pd) 104_efl_canvas_layout_part_efl_gfx_geometry_get(Eo *obj, Efl_Canvas_Layout_Part_Data *pd)
105{ 105{
106 Edje_Real_Part *rp = pd->rp; 106 Edje_Real_Part *rp = pd->rp;
107 Eina_Rectangle r = { 0, }; 107 Eina_Rect r = EINA_RECT_ZERO();
108 108
109 PROXY_CALL_BEGIN(pd); 109 PROXY_CALL_BEGIN(pd);
110 _edje_recalc_do(pd->ed); 110 _edje_recalc_do(pd->ed);
111 if (!rp) RETURN_VAL(r); 111 if (!rp) RETURN_VAL(r);
112 112
113 RETURN_VAL(rp->rect); 113 RETURN_VAL((Eina_Rect) rp->rect);
114} 114}
115 115
116EOLIAN static void 116EOLIAN static void
diff --git a/src/lib/edje/efl_canvas_layout_calc.eo b/src/lib/edje/efl_canvas_layout_calc.eo
index 6e89d9f..0874056 100644
--- a/src/lib/edje/efl_canvas_layout_calc.eo
+++ b/src/lib/edje/efl_canvas_layout_calc.eo
@@ -88,7 +88,7 @@ interface Efl.Canvas.Layout_Calc
88 Note: On failure, this function will make all non-$null geometry 88 Note: On failure, this function will make all non-$null geometry
89 pointers' pointed variables be set to zero. 89 pointers' pointed variables be set to zero.
90 ]] 90 ]]
91 return: Eina.Rectangle; [[The calculated region.]] 91 return: Eina.Rect; [[The calculated region.]]
92 } 92 }
93 calc_freeze { 93 calc_freeze {
94 [[Freezes the layout object. 94 [[Freezes the layout object.
diff --git a/src/lib/efl/interfaces/efl_animator.eo b/src/lib/efl/interfaces/efl_animator.eo
index dd1322a..ac7e86b 100644
--- a/src/lib/efl/interfaces/efl_animator.eo
+++ b/src/lib/efl/interfaces/efl_animator.eo
@@ -2,7 +2,7 @@ import eina_types;
2 2
3struct Efl.Event.Animator_Tick { 3struct Efl.Event.Animator_Tick {
4 [[EFL event animator tick data structure]] 4 [[EFL event animator tick data structure]]
5 update_area: Eina.Rectangle; [[Area of the canvas that will be pushed to screen.]] 5 update_area: Eina.Rect; [[Area of the canvas that will be pushed to screen.]]
6} 6}
7 7
8interface Efl.Animator { 8interface Efl.Animator {
diff --git a/src/lib/efl/interfaces/efl_gfx.eo b/src/lib/efl/interfaces/efl_gfx.eo
index bea1ca6..eccc2a0 100644
--- a/src/lib/efl/interfaces/efl_gfx.eo
+++ b/src/lib/efl/interfaces/efl_gfx.eo
@@ -46,7 +46,7 @@ interface Efl.Gfx {
46 @property geometry { 46 @property geometry {
47 [[Rectangular geometry that combines both position and size.]] 47 [[Rectangular geometry that combines both position and size.]]
48 values { 48 values {
49 rect: Eina.Rectangle; [[The X,Y position and W,H size, in pixels.]] 49 rect: Eina.Rect; [[The X,Y position and W,H size, in pixels.]]
50 } 50 }
51 } 51 }
52 @property color { 52 @property color {
diff --git a/src/lib/efl/interfaces/efl_gfx_fill.eo b/src/lib/efl/interfaces/efl_gfx_fill.eo
index 385f79f..566f26d 100644
--- a/src/lib/efl/interfaces/efl_gfx_fill.eo
+++ b/src/lib/efl/interfaces/efl_gfx_fill.eo
@@ -38,7 +38,7 @@ interface Efl.Gfx.Fill {
38 set {} 38 set {}
39 get {} 39 get {}
40 values { 40 values {
41 fill: Eina.Rectangle; [[The top-left corner to start drawing from 41 fill: Eina.Rect; [[The top-left corner to start drawing from
42 as well as the size at which the bound image will be displayed.]] 42 as well as the size at which the bound image will be displayed.]]
43 } 43 }
44 } 44 }
diff --git a/src/lib/efl/interfaces/efl_gfx_path.c b/src/lib/efl/interfaces/efl_gfx_path.c
index 5c3aa64..3501379 100644
--- a/src/lib/efl/interfaces/efl_gfx_path.c
+++ b/src/lib/efl/interfaces/efl_gfx_path.c
@@ -207,9 +207,7 @@ _efl_gfx_path_length_get(Eo *obj EINA_UNUSED, Efl_Gfx_Path_Data *pd,
207} 207}
208 208
209static void 209static void
210_efl_gfx_path_bounds_get(Eo *obj EINA_UNUSED, 210_efl_gfx_path_bounds_get(Eo *obj EINA_UNUSED, Efl_Gfx_Path_Data *pd, Eina_Rect *r)
211 Efl_Gfx_Path_Data *pd,
212 Eina_Rectangle *r)
213{ 211{
214 double minx, miny, maxx, maxy; 212 double minx, miny, maxx, maxy;
215 unsigned int i; 213 unsigned int i;
diff --git a/src/lib/efl/interfaces/efl_gfx_path.eo b/src/lib/efl/interfaces/efl_gfx_path.eo
index ca0c3b4..c4d15d8 100644
--- a/src/lib/efl/interfaces/efl_gfx_path.eo
+++ b/src/lib/efl/interfaces/efl_gfx_path.eo
@@ -64,7 +64,7 @@ mixin Efl.Gfx.Path
64 @since 1.18 64 @since 1.18
65 ]] 65 ]]
66 params { 66 params {
67 @out r: Eina.Rectangle; [[Contain the bounding box of the currently set path]] 67 @out r: Eina.Rect; [[Contain the bounding box of the currently set path]]
68 } 68 }
69 } 69 }
70 reset { 70 reset {
diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot
index bd156ba..20ddeea 100644
--- a/src/lib/efl/interfaces/efl_gfx_types.eot
+++ b/src/lib/efl/interfaces/efl_gfx_types.eot
@@ -158,7 +158,7 @@ enum Efl.Gfx.Change.Flag
158struct Efl.Gfx.Event.Render_Post 158struct Efl.Gfx.Event.Render_Post
159{ 159{
160 [[Data sent along a "render,post" event, after a frame has been rendered.]] 160 [[Data sent along a "render,post" event, after a frame has been rendered.]]
161 updated_area: list <Eina.Rectangle>; [[A list of rectangles that were 161 updated_area: list <Eina.Rect>; [[A list of rectangles that were
162 updated in the canvas.]] 162 updated in the canvas.]]
163} 163}
164 164
diff --git a/src/lib/eina/eina_rectangle.h b/src/lib/eina/eina_rectangle.h
index e32dfcb..ba3e78f 100644
--- a/src/lib/eina/eina_rectangle.h
+++ b/src/lib/eina/eina_rectangle.h
@@ -43,6 +43,22 @@
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 } })
47#define EINA_RECT_ZERO() { EINA_RECTANGLE_INIT }
48#define EINA_RECT_EMPTY() ((Eina_Rect) EINA_RECT_ZERO())
49
50/** @brief A 2D position in pixels coordinates */
51typedef struct _Eina_Position2D
52{
53 int x, y;
54} Eina_Position2D;
55
56/** @brief A 2D size in pixels coordinates */
57typedef struct _Eina_Size2D
58{
59 int w, h;
60} Eina_Size2D;
61
46/** 62/**
47 * @typedef Eina_Rectangle 63 * @typedef Eina_Rectangle
48 * Simple rectangle structure. 64 * Simple rectangle structure.
@@ -55,6 +71,18 @@ typedef struct _Eina_Rectangle
55 int h; /**< height of rectangle */ 71 int h; /**< height of rectangle */
56} Eina_Rectangle; 72} Eina_Rectangle;
57 73
74typedef union _Eina_Rect
75{
76 Eina_Rectangle rect;
77 struct {
78 Eina_Position2D pos;
79 Eina_Size2D size;
80 };
81 struct {
82 int x, y, w, h;
83 };
84} Eina_Rect;
85
58/** 86/**
59 * @typedef Eina_Rectangle_Pool 87 * @typedef Eina_Rectangle_Pool
60 * Type for an opaque pool of rectangle. 88 * Type for an opaque pool of rectangle.
@@ -483,6 +511,8 @@ EAPI void eina_rectangle_pool_release(Eina_Rectangle *rect) EINA
483 (Rectangle)->h = H; \ 511 (Rectangle)->h = H; \
484 } 512 }
485 513
514#define EINA_RECT_SET(r, x, y, w, h) do { EINA_RECTANGLE_SET((&r), x, y, w, h) } while (0)
515
486 516
487/** 517/**
488 * @brief Creates a new rectangle. 518 * @brief Creates a new rectangle.
diff --git a/src/lib/elementary/efl_access_component.c b/src/lib/elementary/efl_access_component.c
index 9bf2bfc..5b4ddd3 100644
--- a/src/lib/elementary/efl_access_component.c
+++ b/src/lib/elementary/efl_access_component.c
@@ -13,7 +13,7 @@
13EOLIAN static void 13EOLIAN static void
14_efl_access_component_position_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int *x, int *y) 14_efl_access_component_position_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int *x, int *y)
15{ 15{
16 Eina_Rectangle r; 16 Eina_Rect r;
17 17
18 r = efl_access_component_extents_get(obj, type); 18 r = efl_access_component_extents_get(obj, type);
19 if (x) *x = r.x; 19 if (x) *x = r.x;
@@ -23,7 +23,7 @@ _efl_access_component_position_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, E
23EOLIAN static Eina_Bool 23EOLIAN static Eina_Bool
24_efl_access_component_position_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int x, int y) 24_efl_access_component_position_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int x, int y)
25{ 25{
26 Eina_Rectangle r; 26 Eina_Rect r;
27 27
28 r = efl_access_component_extents_get(obj, type); 28 r = efl_access_component_extents_get(obj, type);
29 r.x = x; 29 r.x = x;
@@ -34,7 +34,7 @@ _efl_access_component_position_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, E
34EOLIAN static Eina_Bool 34EOLIAN static Eina_Bool
35_efl_access_component_size_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int w, int h) 35_efl_access_component_size_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int w, int h)
36{ 36{
37 Eina_Rectangle r; 37 Eina_Rect r;
38 38
39 r = efl_access_component_extents_get(obj, EINA_FALSE); 39 r = efl_access_component_extents_get(obj, EINA_FALSE);
40 r.w = w; 40 r.w = w;
@@ -45,7 +45,7 @@ _efl_access_component_size_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int w
45EOLIAN static void 45EOLIAN static void
46_efl_access_component_size_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int *w, int *h) 46_efl_access_component_size_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int *w, int *h)
47{ 47{
48 Eina_Rectangle r; 48 Eina_Rect r;
49 49
50 r = efl_access_component_extents_get(obj, EINA_FALSE); 50 r = efl_access_component_extents_get(obj, EINA_FALSE);
51 if (w) *w = r.w; 51 if (w) *w = r.w;
@@ -55,10 +55,10 @@ _efl_access_component_size_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int *
55EOLIAN static Eina_Bool 55EOLIAN static Eina_Bool
56_efl_access_component_contains(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int x, int y) 56_efl_access_component_contains(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int x, int y)
57{ 57{
58 Eina_Rectangle r; 58 Eina_Rect r;
59 59
60 r = efl_access_component_extents_get(obj, type); 60 r = efl_access_component_extents_get(obj, type);
61 return eina_rectangle_coords_inside(&r, x, y); 61 return eina_rectangle_coords_inside(&r.rect, x, y);
62} 62}
63 63
64EOLIAN static double 64EOLIAN static double
@@ -96,10 +96,10 @@ _efl_access_component_accessible_at_point_get(Eo *obj, void *_pd EINA_UNUSED, Ei
96 return ret; 96 return ret;
97} 97}
98 98
99EOLIAN static Eina_Rectangle 99EOLIAN static Eina_Rect
100_efl_access_component_extents_get(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool screen_coords) 100_efl_access_component_extents_get(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool screen_coords)
101{ 101{
102 Eina_Rectangle r; 102 Eina_Rect r;
103 103
104 r = efl_gfx_geometry_get(obj); 104 r = efl_gfx_geometry_get(obj);
105 if (screen_coords) 105 if (screen_coords)
@@ -117,7 +117,7 @@ _efl_access_component_extents_get(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool scre
117} 117}
118 118
119EOLIAN static Eina_Bool 119EOLIAN static Eina_Bool
120_efl_access_component_extents_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool screen_coords, Eina_Rectangle r) 120_efl_access_component_extents_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool screen_coords, Eina_Rect r)
121{ 121{
122 int wx, wy; 122 int wx, wy;
123 123
diff --git a/src/lib/elementary/efl_access_component.eo b/src/lib/elementary/efl_access_component.eo
index f69c7b4..dd4d5e4 100644
--- a/src/lib/elementary/efl_access_component.eo
+++ b/src/lib/elementary/efl_access_component.eo
@@ -54,7 +54,7 @@ mixin Efl.Access.Component ()
54 screen origin, otherwise relative to canvas]] 54 screen origin, otherwise relative to canvas]]
55 } 55 }
56 values { 56 values {
57 rect: Eina.Rectangle; [[The geometry.]] 57 rect: Eina.Rect; [[The geometry.]]
58 } 58 }
59 } 59 }
60 @property position @protected { 60 @property position @protected {
diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c
index 21c07ae..9f5b36d 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.c
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.c
@@ -206,7 +206,7 @@ node_item_free(Node *item)
206//CALCULATING STUFF 206//CALCULATING STUFF
207 207
208static inline int 208static inline int
209_distance(Eina_Rectangle node, Eina_Rectangle op, Dimension dim) 209_distance(Eina_Rect node, Eina_Rect op, Dimension dim)
210{ 210{
211 int min, max, point; 211 int min, max, point;
212 int v1, v2; 212 int v1, v2;
@@ -214,13 +214,13 @@ _distance(Eina_Rectangle node, Eina_Rectangle op, Dimension dim)
214 if (dim == DIMENSION_X) 214 if (dim == DIMENSION_X)
215 { 215 {
216 min = op.x; 216 min = op.x;
217 max = eina_rectangle_max_x(&op); 217 max = eina_rectangle_max_x(&op.rect);
218 point = node.x + node.w/2; 218 point = node.x + node.w/2;
219 } 219 }
220 else 220 else
221 { 221 {
222 min = op.y; 222 min = op.y;
223 max = eina_rectangle_max_y(&op); 223 max = eina_rectangle_max_y(&op.rect);
224 point = node.y + node.h/2; 224 point = node.y + node.h/2;
225 } 225 }
226 226
@@ -236,7 +236,7 @@ _distance(Eina_Rectangle node, Eina_Rectangle op, Dimension dim)
236static inline void 236static inline void
237_calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, Dimension dim, Eina_List **pos, Eina_List **neg) 237_calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, Dimension dim, Eina_List **pos, Eina_List **neg)
238{ 238{
239 Eina_Rectangle rect = EINA_RECTANGLE_INIT; 239 Eina_Rect rect;
240 Efl_Ui_Focus_Object *op; 240 Efl_Ui_Focus_Object *op;
241 int dim_min, dim_max; 241 int dim_min, dim_max;
242 Eina_Iterator *nodes; 242 Eina_Iterator *nodes;
@@ -262,7 +262,7 @@ _calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, D
262 262
263 EINA_ITERATOR_FOREACH(nodes, n) 263 EINA_ITERATOR_FOREACH(nodes, n)
264 { 264 {
265 Eina_Rectangle op_rect = EINA_RECTANGLE_INIT; 265 Eina_Rect op_rect;
266 int min, max; 266 int min, max;
267 267
268 op = n->focusable; 268 op = n->focusable;
@@ -275,12 +275,12 @@ _calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, D
275 if (dim == DIMENSION_X) 275 if (dim == DIMENSION_X)
276 { 276 {
277 min = op_rect.y; 277 min = op_rect.y;
278 max = eina_rectangle_max_y(&op_rect); 278 max = eina_rectangle_max_y(&op_rect.rect);
279 } 279 }
280 else 280 else
281 { 281 {
282 min = op_rect.x; 282 min = op_rect.x;
283 max = eina_rectangle_max_x(&op_rect); 283 max = eina_rectangle_max_x(&op_rect.rect);
284 } 284 }
285 285
286 286
@@ -290,7 +290,7 @@ _calculate_node(Efl_Ui_Focus_Manager_Calc_Data *pd, Efl_Ui_Focus_Object *node, D
290 */ 290 */
291 if (!((min <= max && max <= dim_min && dim_min <= dim_max) || 291 if (!((min <= max && max <= dim_min && dim_min <= dim_max) ||
292 (dim_min <= dim_max && dim_max <= min && min <= max)) && 292 (dim_min <= dim_max && dim_max <= min && min <= max)) &&
293 !eina_rectangle_intersection(&op_rect, &rect)) 293 !eina_rectangle_intersection(&op_rect.rect, &rect.rect))
294 { 294 {
295 //this thing hits horizontal 295 //this thing hits horizontal
296 int tmp_dis; 296 int tmp_dis;
@@ -959,7 +959,7 @@ _no_history_element(Eina_Hash *node_hash)
959static void 959static void
960_get_middle(Evas_Object *obj, Eina_Vector2 *elem) 960_get_middle(Evas_Object *obj, Eina_Vector2 *elem)
961{ 961{
962 Eina_Rectangle geom; 962 Eina_Rect geom;
963 963
964 geom = efl_ui_focus_object_focus_geometry_get(obj); 964 geom = efl_ui_focus_object_focus_geometry_get(obj);
965 elem->x = geom.x + geom.w/2; 965 elem->x = geom.x + geom.w/2;
diff --git a/src/lib/elementary/efl_ui_focus_object.eo b/src/lib/elementary/efl_ui_focus_object.eo
index 78ba257..69aadb9 100644
--- a/src/lib/elementary/efl_ui_focus_object.eo
+++ b/src/lib/elementary/efl_ui_focus_object.eo
@@ -13,7 +13,7 @@ mixin Efl.Ui.Focus.Object
13 13
14 } 14 }
15 values { 15 values {
16 rect : Eina.Rectangle; [[The geometry to use.]] 16 rect : Eina.Rect; [[The geometry to use.]]
17 } 17 }
18 } 18 }
19 @property focus { 19 @property focus {
diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c
index 24aa926..a589e59 100644
--- a/src/lib/elementary/efl_ui_text.c
+++ b/src/lib/elementary/efl_ui_text.c
@@ -1041,7 +1041,6 @@ _cursor_geometry_recalc(Evas_Object *obj)
1041 Evas_Coord x, y, w, h; 1041 Evas_Coord x, y, w, h;
1042 Evas_Coord x2, y2, w2, h2; 1042 Evas_Coord x2, y2, w2, h2;
1043 Evas_Coord cx, cy, cw, ch; 1043 Evas_Coord cx, cy, cw, ch;
1044 Eina_Rectangle sr;
1045 1044
1046 cx = cy = cw = ch = 0; 1045 cx = cy = cw = ch = 0;
1047 x2 = y2 = w2 = h2 = 0; 1046 x2 = y2 = w2 = h2 = 0;
@@ -1063,8 +1062,7 @@ _cursor_geometry_recalc(Evas_Object *obj)
1063 &x2, &y2, &w2, &h2); 1062 &x2, &y2, &w2, &h2);
1064 cx = cx + x - x2; 1063 cx = cx + x - x2;
1065 cy = cy + y - y2; 1064 cy = cy + y - y2;
1066 sr = (Eina_Rectangle) { cx, cy, cw, ch }; 1065 elm_widget_show_region_set(obj, EINA_RECT(cx, cy, cw, ch), EINA_FALSE);
1067 elm_widget_show_region_set(obj, sr, EINA_FALSE);
1068} 1066}
1069 1067
1070EOLIAN static void 1068EOLIAN static void
@@ -1207,11 +1205,11 @@ _efl_ui_text_elm_widget_on_focus_update(Eo *obj, Efl_Ui_Text_Data *sd, Elm_Objec
1207 return EINA_TRUE; 1205 return EINA_TRUE;
1208} 1206}
1209 1207
1210EOLIAN static Eina_Rectangle 1208EOLIAN static Eina_Rect
1211_efl_ui_text_elm_widget_focus_region_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd) 1209_efl_ui_text_elm_widget_focus_region_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd)
1212{ 1210{
1213 Evas_Coord edje_x, edje_y, elm_x, elm_y; 1211 Evas_Coord edje_x, edje_y, elm_x, elm_y;
1214 Eina_Rectangle r = {}; 1212 Eina_Rect r = {};
1215 1213
1216 efl_text_cursor_geometry_get(obj, 1214 efl_text_cursor_geometry_get(obj,
1217 efl_text_cursor_get(obj, EFL_TEXT_CURSOR_GET_MAIN), 1215 efl_text_cursor_get(obj, EFL_TEXT_CURSOR_GET_MAIN),
@@ -1237,7 +1235,7 @@ _efl_ui_text_elm_widget_focus_region_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *
1237} 1235}
1238 1236
1239static void 1237static void
1240_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r) 1238_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r)
1241{ 1239{
1242 elm_interface_scrollable_content_region_show(obj, r.x, r.y, r.w, r.h); 1240 elm_interface_scrollable_content_region_show(obj, r.x, r.y, r.w, r.h);
1243} 1241}
@@ -4247,7 +4245,7 @@ _efl_ui_text_elm_interface_atspi_text_selection_add(Eo *obj, Efl_Ui_Text_Data *p
4247} 4245}
4248 4246
4249EOLIAN static Eina_List* 4247EOLIAN static Eina_List*
4250_efl_ui_text_elm_interface_atspi_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rectangle rect EINA_UNUSED, Elm_Atspi_Text_Clip_Type xclip EINA_UNUSED, Elm_Atspi_Text_Clip_Type yclip EINA_UNUSED) 4248_efl_ui_text_elm_interface_atspi_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rect rect EINA_UNUSED, Elm_Atspi_Text_Clip_Type xclip EINA_UNUSED, Elm_Atspi_Text_Clip_Type yclip EINA_UNUSED)
4251{ 4249{
4252 return NULL; 4250 return NULL;
4253} 4251}
@@ -4286,7 +4284,7 @@ _efl_ui_text_elm_interface_atspi_text_offset_at_point_get(Eo *obj, Efl_Ui_Text_D
4286} 4284}
4287 4285
4288EOLIAN static Eina_Bool 4286EOLIAN static Eina_Bool
4289_efl_ui_text_elm_interface_atspi_text_character_extents_get(Eo *obj, Efl_Ui_Text_Data *pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rectangle *rect) 4287_efl_ui_text_elm_interface_atspi_text_character_extents_get(Eo *obj, Efl_Ui_Text_Data *pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rect *rect)
4290{ 4288{
4291 Evas_Textblock_Cursor *cur; 4289 Evas_Textblock_Cursor *cur;
4292 int ret; 4290 int ret;
@@ -4317,7 +4315,7 @@ _efl_ui_text_elm_interface_atspi_text_character_extents_get(Eo *obj, Efl_Ui_Text
4317} 4315}
4318 4316
4319EOLIAN static Eina_Bool 4317EOLIAN static Eina_Bool
4320_efl_ui_text_elm_interface_atspi_text_range_extents_get(Eo *obj, Efl_Ui_Text_Data *pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rectangle *rect) 4318_efl_ui_text_elm_interface_atspi_text_range_extents_get(Eo *obj, Efl_Ui_Text_Data *pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rect *rect)
4321{ 4319{
4322 Evas_Textblock_Cursor *cur1, *cur2; 4320 Evas_Textblock_Cursor *cur1, *cur2;
4323 int ret; 4321 int ret;
diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c
index b92331c..f4ac2a8 100644
--- a/src/lib/elementary/efl_ui_textpath.c
+++ b/src/lib/elementary/efl_ui_textpath.c
@@ -164,7 +164,7 @@ _text_on_line_draw(Efl_Ui_Textpath_Data *pd, int w1, int w2, int cmp, Evas_Map *
164{ 164{
165 double x1, x2, y1, y2; 165 double x1, x2, y1, y2;
166 double line_len, len, sina, cosa; 166 double line_len, len, sina, cosa;
167 Eina_Rectangle r; 167 Eina_Rect r;
168 168
169 x1 = line.start.x; 169 x1 = line.start.x;
170 y1 = line.start.y; 170 y1 = line.start.y;
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index e1e6b6c..7258c5f 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -1037,7 +1037,7 @@ static void
1037_elm_win_focus_highlight_anim_setup(Efl_Ui_Win_Data *sd, 1037_elm_win_focus_highlight_anim_setup(Efl_Ui_Win_Data *sd,
1038 Evas_Object *obj) 1038 Evas_Object *obj)
1039{ 1039{
1040 Eina_Rectangle rt, rp; 1040 Eina_Rect rt, rp;
1041 Edje_Message_Int_Set *m; 1041 Edje_Message_Int_Set *m;
1042 Evas_Object *target = sd->focus_highlight.cur.target; 1042 Evas_Object *target = sd->focus_highlight.cur.target;
1043 1043
@@ -1045,7 +1045,7 @@ _elm_win_focus_highlight_anim_setup(Efl_Ui_Win_Data *sd,
1045 rt = elm_widget_focus_highlight_geometry_get(target); 1045 rt = elm_widget_focus_highlight_geometry_get(target);
1046 efl_gfx_geometry_set(obj, rt); 1046 efl_gfx_geometry_set(obj, rt);
1047 1047
1048 if (eina_rectangle_equal(&rp, &rt)) return; 1048 if (eina_rectangle_equal(&rp.rect, &rt.rect)) return;
1049 1049
1050 if (!_elm_config->focus_highlight_clip_disable) 1050 if (!_elm_config->focus_highlight_clip_disable)
1051 evas_object_clip_unset(obj); 1051 evas_object_clip_unset(obj);
@@ -6713,10 +6713,10 @@ _efl_ui_win_elm_interface_atspi_accessible_name_get(Eo *obj, Efl_Ui_Win_Data *sd
6713 return name; 6713 return name;
6714} 6714}
6715 6715
6716EOLIAN static Eina_Rectangle 6716EOLIAN static Eina_Rect
6717_efl_ui_win_efl_access_component_extents_get(Eo *obj, Efl_Ui_Win_Data *_pd EINA_UNUSED, Eina_Bool screen_coords) 6717_efl_ui_win_efl_access_component_extents_get(Eo *obj, Efl_Ui_Win_Data *_pd EINA_UNUSED, Eina_Bool screen_coords)
6718{ 6718{
6719 Eina_Rectangle r; 6719 Eina_Rect r;
6720 int ee_x, ee_y; 6720 int ee_x, ee_y;
6721 6721
6722 r = efl_gfx_geometry_get(obj); 6722 r = efl_gfx_geometry_get(obj);
diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c
index e156bfa..580d1c1 100644
--- a/src/lib/elementary/elc_multibuttonentry.c
+++ b/src/lib/elementary/elc_multibuttonentry.c
@@ -1080,12 +1080,7 @@ _entry_resize_cb(void *data,
1080 ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(data, sd); 1080 ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN(data, sd);
1081 1081
1082 if (elm_widget_focus_get(sd->parent)) 1082 if (elm_widget_focus_get(sd->parent))
1083 { 1083 elm_widget_show_region_set(sd->entry, efl_gfx_geometry_get(sd->entry), EINA_TRUE);
1084 Eina_Rectangle sr = {};
1085
1086 evas_object_geometry_get(sd->entry, &sr.x, &sr.y, &sr.w, &sr.h);
1087 elm_widget_show_region_set(sd->entry, sr, EINA_TRUE);
1088 }
1089} 1084}
1090 1085
1091static void 1086static void
diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c
index 70fa916..bbb70c7 100644
--- a/src/lib/elementary/elm_atspi_bridge.c
+++ b/src/lib/elementary/elm_atspi_bridge.c
@@ -1507,7 +1507,7 @@ _text_character_extents_get(const Eldbus_Service_Interface *iface, const Eldbus_
1507 Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME); 1507 Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME);
1508 Eo *obj = _bridge_object_from_path(bridge, obj_path); 1508 Eo *obj = _bridge_object_from_path(bridge, obj_path);
1509 int offset; 1509 int offset;
1510 Eina_Rectangle rect; 1510 Eina_Rect rect;
1511 AtspiCoordType type; 1511 AtspiCoordType type;
1512 Eina_Bool screen_coords, res; 1512 Eina_Bool screen_coords, res;
1513 Eldbus_Message *ret; 1513 Eldbus_Message *ret;
@@ -1690,7 +1690,7 @@ _text_range_extents_get(const Eldbus_Service_Interface *iface, const Eldbus_Mess
1690 Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME); 1690 Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME);
1691 Eo *obj = _bridge_object_from_path(bridge, obj_path); 1691 Eo *obj = _bridge_object_from_path(bridge, obj_path);
1692 int start, end; 1692 int start, end;
1693 Eina_Rectangle rect; 1693 Eina_Rect rect;
1694 Eina_Bool screen_coords, res; 1694 Eina_Bool screen_coords, res;
1695 AtspiCoordType type; 1695 AtspiCoordType type;
1696 Eldbus_Message *ret; 1696 Eldbus_Message *ret;
@@ -1722,7 +1722,7 @@ _text_bounded_ranges_get(const Eldbus_Service_Interface *iface, const Eldbus_Mes
1722 const char *obj_path = eldbus_message_path_get(msg); 1722 const char *obj_path = eldbus_message_path_get(msg);
1723 Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME); 1723 Eo *bridge = eldbus_service_object_data_get(iface, ELM_ATSPI_BRIDGE_CLASS_NAME);
1724 Eo *obj = _bridge_object_from_path(bridge, obj_path); 1724 Eo *obj = _bridge_object_from_path(bridge, obj_path);
1725 Eina_Rectangle rect; 1725 Eina_Rect rect;
1726 Eina_Bool screen_coords; 1726 Eina_Bool screen_coords;
1727 AtspiCoordType type; 1727 AtspiCoordType type;
1728 Elm_Atspi_Text_Clip_Type xclip, yclip; 1728 Elm_Atspi_Text_Clip_Type xclip, yclip;
@@ -3351,7 +3351,7 @@ _component_get_extents(const Eldbus_Service_Interface *iface EINA_UNUSED, const
3351 AtspiCoordType coord_type; 3351 AtspiCoordType coord_type;
3352 Eldbus_Message *ret; 3352 Eldbus_Message *ret;
3353 Eldbus_Message_Iter *iter, *iter_struct; 3353 Eldbus_Message_Iter *iter, *iter_struct;
3354 Eina_Rectangle r; 3354 Eina_Rect r;
3355 3355
3356 ELM_ATSPI_OBJ_CHECK_OR_RETURN_DBUS_ERROR(obj, EFL_ACCESS_COMPONENT_MIXIN, msg); 3356 ELM_ATSPI_OBJ_CHECK_OR_RETURN_DBUS_ERROR(obj, EFL_ACCESS_COMPONENT_MIXIN, msg);
3357 3357
@@ -3523,8 +3523,7 @@ _component_set_extends(const Eldbus_Service_Interface *iface EINA_UNUSED, const
3523 return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.InvalidArgs", "Invalid index type."); 3523 return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.InvalidArgs", "Invalid index type.");
3524 3524
3525 Eina_Bool type = coord_type == ATSPI_COORD_TYPE_SCREEN ? EINA_TRUE : EINA_FALSE; 3525 Eina_Bool type = coord_type == ATSPI_COORD_TYPE_SCREEN ? EINA_TRUE : EINA_FALSE;
3526 Eina_Rectangle r = (Eina_Rectangle) { x, y, w, h }; 3526 result = efl_access_component_extents_set(obj, type, EINA_RECT(x, y, w, h));
3527 result = efl_access_component_extents_set(obj, type, r);
3528 3527
3529 ret = eldbus_message_method_return_new(msg); 3528 ret = eldbus_message_method_return_new(msg);
3530 EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL); 3529 EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL);
diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c
index 75ac9c5..957cfc9 100644
--- a/src/lib/elementary/elm_colorselector.c
+++ b/src/lib/elementary/elm_colorselector.c
@@ -2258,22 +2258,18 @@ _access_obj_process(Evas_Object *obj, Eina_Bool is_access)
2258 } 2258 }
2259} 2259}
2260 2260
2261EOLIAN static Eina_Rectangle 2261EOLIAN static Eina_Rect
2262_elm_colorselector_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd) 2262_elm_colorselector_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd)
2263{ 2263{
2264 Eina_Rectangle r = {};
2265
2266 if (sd->focused_item && (sd->focused == ELM_COLORSELECTOR_PALETTE)) 2264 if (sd->focused_item && (sd->focused == ELM_COLORSELECTOR_PALETTE))
2267 { 2265 {
2268 ELM_COLOR_ITEM_DATA_GET(sd->focused_item, focus_it); 2266 ELM_COLOR_ITEM_DATA_GET(sd->focused_item, focus_it);
2269 evas_object_geometry_get(VIEW(focus_it), &r.x, &r.y, &r.w, &r.h); 2267 return efl_gfx_geometry_get(VIEW(focus_it));
2270 } 2268 }
2271 else if(sd->focused == ELM_COLORSELECTOR_COMPONENTS) 2269 else if(sd->focused == ELM_COLORSELECTOR_COMPONENTS)
2272 evas_object_geometry_get(sd->cb_data[sd->sel_color_type]->colorbar, &r.x, &r.y, &r.w, &r.h); 2270 return efl_gfx_geometry_get(sd->cb_data[sd->sel_color_type]->colorbar);
2273 else
2274 evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h);
2275 2271
2276 return r; 2272 return efl_gfx_geometry_get(obj);
2277} 2273}
2278 2274
2279EOLIAN static void 2275EOLIAN static void
diff --git a/src/lib/elementary/elm_conform.c b/src/lib/elementary/elm_conform.c
index d4d3e2f..004e52e 100644
--- a/src/lib/elementary/elm_conform.c
+++ b/src/lib/elementary/elm_conform.c
@@ -663,7 +663,7 @@ _show_region_job(void *data)
663 focus_obj = elm_obj_widget_focused_object_get(data); 663 focus_obj = elm_obj_widget_focused_object_get(data);
664 if (focus_obj) 664 if (focus_obj)
665 { 665 {
666 Eina_Rectangle r = elm_widget_focus_region_get(focus_obj); 666 Eina_Rect r = elm_widget_focus_region_get(focus_obj);
667 667
668 if (r.h < _elm_config->finger_size) 668 if (r.h < _elm_config->finger_size)
669 r.h = _elm_config->finger_size; 669 r.h = _elm_config->finger_size;
diff --git a/src/lib/elementary/elm_ctxpopup.eo b/src/lib/elementary/elm_ctxpopup.eo
index db3dce3..4829b74 100644
--- a/src/lib/elementary/elm_ctxpopup.eo
+++ b/src/lib/elementary/elm_ctxpopup.eo
@@ -221,6 +221,6 @@ class Elm.Ctxpopup (Efl.Ui.Layout, Elm.Interface.Atspi_Widget_Action,
221 } 221 }
222 events { 222 events {
223 dismissed; [[Called when context popup was dismissed]] 223 dismissed; [[Called when context popup was dismissed]]
224 geometry,update: const(ptr(Eina.Rectangle)); [[Called when context popup geometry was updated]] 224 geometry,update: const(ptr(Eina.Rect)); [[Called when context popup geometry was updated]]
225 } 225 }
226} 226}
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index 7d9f461..02fec56 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -1010,7 +1010,7 @@ _cursor_geometry_recalc(Evas_Object *obj)
1010 { 1010 {
1011 if (sd->cur_changed) 1011 if (sd->cur_changed)
1012 { 1012 {
1013 Eina_Rectangle sr = {}; 1013 Eina_Rect sr = {};
1014 1014
1015 sd->cur_changed = EINA_FALSE; 1015 sd->cur_changed = EINA_FALSE;
1016 edje_object_part_text_cursor_geometry_get 1016 edje_object_part_text_cursor_geometry_get
@@ -1084,7 +1084,7 @@ _deferred_recalc_job(void *data)
1084 { 1084 {
1085 if (sd->cur_changed) 1085 if (sd->cur_changed)
1086 { 1086 {
1087 Eina_Rectangle sr = {}; 1087 Eina_Rect sr = {};
1088 1088
1089 sd->cur_changed = EINA_FALSE; 1089 sd->cur_changed = EINA_FALSE;
1090 edje_object_part_text_cursor_geometry_get 1090 edje_object_part_text_cursor_geometry_get
@@ -1307,13 +1307,13 @@ _elm_entry_elm_widget_on_focus_update(Eo *obj, Elm_Entry_Data *sd, Elm_Object_It
1307 return EINA_TRUE; 1307 return EINA_TRUE;
1308} 1308}
1309 1309
1310EOLIAN static Eina_Rectangle 1310EOLIAN static Eina_Rect
1311_elm_entry_elm_widget_focus_region_get(Eo *obj, Elm_Entry_Data *sd) 1311_elm_entry_elm_widget_focus_region_get(Eo *obj, Elm_Entry_Data *sd)
1312{ 1312{
1313 Evas_Coord cx, cy, cw, ch; 1313 Evas_Coord cx, cy, cw, ch;
1314 Evas_Coord edx, edy; 1314 Evas_Coord edx, edy;
1315 Evas_Coord elx, ely, elw, elh; 1315 Evas_Coord elx, ely, elw, elh;
1316 Eina_Rectangle r; 1316 Eina_Rect r;
1317 1317
1318 edje_object_part_text_cursor_geometry_get 1318 edje_object_part_text_cursor_geometry_get
1319 (sd->entry_edje, "elm.text", &cx, &cy, &cw, &ch); 1319 (sd->entry_edje, "elm.text", &cx, &cy, &cw, &ch);
@@ -1340,7 +1340,7 @@ _elm_entry_elm_widget_focus_region_get(Eo *obj, Elm_Entry_Data *sd)
1340} 1340}
1341 1341
1342static void 1342static void
1343_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r) 1343_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r)
1344{ 1344{
1345 elm_interface_scrollable_content_region_show(obj, r.x, r.y, r.w, r.h); 1345 elm_interface_scrollable_content_region_show(obj, r.x, r.y, r.w, r.h);
1346} 1346}
@@ -5683,7 +5683,7 @@ _elm_entry_elm_interface_atspi_text_selection_add(Eo *obj, Elm_Entry_Data *pd EI
5683} 5683}
5684 5684
5685EOLIAN static Eina_List* 5685EOLIAN static Eina_List*
5686_elm_entry_elm_interface_atspi_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rectangle rect EINA_UNUSED, Elm_Atspi_Text_Clip_Type xclip EINA_UNUSED, Elm_Atspi_Text_Clip_Type yclip EINA_UNUSED) 5686_elm_entry_elm_interface_atspi_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rect rect EINA_UNUSED, Elm_Atspi_Text_Clip_Type xclip EINA_UNUSED, Elm_Atspi_Text_Clip_Type yclip EINA_UNUSED)
5687{ 5687{
5688 return NULL; 5688 return NULL;
5689} 5689}
@@ -5723,7 +5723,7 @@ _elm_entry_elm_interface_atspi_text_offset_at_point_get(Eo *obj, Elm_Entry_Data
5723} 5723}
5724 5724
5725EOLIAN static Eina_Bool 5725EOLIAN static Eina_Bool
5726_elm_entry_elm_interface_atspi_text_character_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rectangle *rect) 5726_elm_entry_elm_interface_atspi_text_character_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rect *rect)
5727{ 5727{
5728 Evas_Object *txtblk; 5728 Evas_Object *txtblk;
5729 Evas_Textblock_Cursor *cur; 5729 Evas_Textblock_Cursor *cur;
@@ -5755,7 +5755,7 @@ _elm_entry_elm_interface_atspi_text_character_extents_get(Eo *obj, Elm_Entry_Dat
5755} 5755}
5756 5756
5757EOLIAN static Eina_Bool 5757EOLIAN static Eina_Bool
5758_elm_entry_elm_interface_atspi_text_range_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rectangle *rect) 5758_elm_entry_elm_interface_atspi_text_range_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rect *rect)
5759{ 5759{
5760 Evas_Object *txtblk; 5760 Evas_Object *txtblk;
5761 Evas_Textblock_Cursor *cur1, *cur2; 5761 Evas_Textblock_Cursor *cur1, *cur2;
diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c
index 64c14be..b700e67 100644
--- a/src/lib/elementary/elm_gengrid.c
+++ b/src/lib/elementary/elm_gengrid.c
@@ -3538,10 +3538,10 @@ _elm_gengrid_elm_widget_on_focus_update(Eo *obj, Elm_Gengrid_Data *sd, Elm_Objec
3538 return EINA_TRUE; 3538 return EINA_TRUE;
3539} 3539}
3540 3540
3541EOLIAN static Eina_Rectangle 3541EOLIAN static Eina_Rect
3542_elm_gengrid_elm_widget_focus_region_get(Eo *obj, Elm_Gengrid_Data *sd) 3542_elm_gengrid_elm_widget_focus_region_get(Eo *obj, Elm_Gengrid_Data *sd)
3543{ 3543{
3544 Eina_Rectangle r = {}; 3544 Eina_Rect r = {};
3545 3545
3546 if (!sd->focused_item) goto end; 3546 if (!sd->focused_item) goto end;
3547 if (elm_object_focus_region_show_mode_get(obj) == ELM_FOCUS_REGION_SHOW_ITEM) 3547 if (elm_object_focus_region_show_mode_get(obj) == ELM_FOCUS_REGION_SHOW_ITEM)
@@ -5482,11 +5482,11 @@ elm_gengrid_nth_item_get(const Evas_Object *obj, unsigned int nth)
5482 return EO_OBJ(it); 5482 return EO_OBJ(it);
5483} 5483}
5484 5484
5485EOLIAN static Eina_Rectangle 5485EOLIAN static Eina_Rect
5486_elm_gengrid_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Gengrid_Data *sd) 5486_elm_gengrid_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Gengrid_Data *sd)
5487{ 5487{
5488 Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0; 5488 Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0;
5489 Eina_Rectangle r = {}; 5489 Eina_Rect r = {};
5490 5490
5491 evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh); 5491 evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh);
5492 5492
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 912cbb6..a8800be 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -3465,7 +3465,7 @@ _elm_genlist_elm_widget_theme_apply(Eo *obj, Elm_Genlist_Data *sd)
3465/* FIXME: take off later. maybe this show region coords belong in the 3465/* FIXME: take off later. maybe this show region coords belong in the
3466 * interface (new api functions, set/get)? */ 3466 * interface (new api functions, set/get)? */
3467static void 3467static void
3468_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r) 3468_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r)
3469{ 3469{
3470 ELM_GENLIST_DATA_GET_OR_RETURN(obj, sd); 3470 ELM_GENLIST_DATA_GET_OR_RETURN(obj, sd);
3471 3471
@@ -8446,11 +8446,11 @@ elm_genlist_nth_item_get(const Evas_Object *obj, unsigned int nth)
8446 return EO_OBJ(it); 8446 return EO_OBJ(it);
8447} 8447}
8448 8448
8449EOLIAN static Eina_Rectangle 8449EOLIAN static Eina_Rect
8450_elm_genlist_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Genlist_Data *sd) 8450_elm_genlist_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Genlist_Data *sd)
8451{ 8451{
8452 Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0; 8452 Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0;
8453 Eina_Rectangle r = {}; 8453 Eina_Rect r = {};
8454 8454
8455 evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh); 8455 evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh);
8456 8456
diff --git a/src/lib/elementary/elm_interface_atspi_text.eo b/src/lib/elementary/elm_interface_atspi_text.eo
index 4cad503..8485d08 100644
--- a/src/lib/elementary/elm_interface_atspi_text.eo
+++ b/src/lib/elementary/elm_interface_atspi_text.eo
@@ -141,7 +141,7 @@ interface Elm.Interface.Atspi.Text ()
141 screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]] 141 screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]]
142 } 142 }
143 values { 143 values {
144 rect: Eina.Rectangle; [[Extents rectangle]] 144 rect: Eina.Rect; [[Extents rectangle]]
145 } 145 }
146 } 146 }
147 @property character_count @protected { 147 @property character_count @protected {
@@ -171,7 +171,7 @@ interface Elm.Interface.Atspi.Text ()
171 } 171 }
172 keys { 172 keys {
173 screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]] 173 screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]]
174 rect: Eina.Rectangle; [[Bounding box]] 174 rect: Eina.Rect; [[Bounding box]]
175 xclip: Elm.Atspi_Text.Clip_Type; [[AT-SPI xclip]] 175 xclip: Elm.Atspi_Text.Clip_Type; [[AT-SPI xclip]]
176 yclip: Elm.Atspi_Text.Clip_Type; [[AT-SPI yclip]] 176 yclip: Elm.Atspi_Text.Clip_Type; [[AT-SPI yclip]]
177 } 177 }
@@ -190,7 +190,7 @@ interface Elm.Interface.Atspi.Text ()
190 end_offset: int; [[End offset]] 190 end_offset: int; [[End offset]]
191 } 191 }
192 values { 192 values {
193 rect: Eina.Rectangle; [[Range rectangle]] 193 rect: Eina.Rect; [[Range rectangle]]
194 } 194 }
195 } 195 }
196 @property selections_count @protected { 196 @property selections_count @protected {
diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c
index 1a52dec..2d115a0 100644
--- a/src/lib/elementary/elm_list.c
+++ b/src/lib/elementary/elm_list.c
@@ -1025,7 +1025,7 @@ _size_hints_changed_cb(void *data,
1025/* FIXME: take off later. maybe this show region coords belong in the 1025/* FIXME: take off later. maybe this show region coords belong in the
1026 * interface (new api functions, set/get)? */ 1026 * interface (new api functions, set/get)? */
1027static void 1027static void
1028_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r) 1028_show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r)
1029{ 1029{
1030 elm_interface_scrollable_content_region_set(obj, r.x, r.y, r.w, r.h); 1030 elm_interface_scrollable_content_region_set(obj, r.x, r.y, r.w, r.h);
1031} 1031}
@@ -3086,7 +3086,7 @@ _elm_list_focus_on_selection_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd)
3086 return sd->focus_on_selection_enabled; 3086 return sd->focus_on_selection_enabled;
3087} 3087}
3088 3088
3089static Eina_Rectangle 3089static Eina_Rect
3090_elm_list_item_coordinates_adjust(Elm_List_Item_Data *it) 3090_elm_list_item_coordinates_adjust(Elm_List_Item_Data *it)
3091{ 3091{
3092 Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh; 3092 Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh;
@@ -3106,13 +3106,13 @@ _elm_list_item_coordinates_adjust(Elm_List_Item_Data *it)
3106 if ((ix + iw) > (vx + vw)) 3106 if ((ix + iw) > (vx + vw))
3107 iw = (vx + vw - ix); 3107 iw = (vx + vw - ix);
3108 3108
3109 return (Eina_Rectangle) { ix, iy, iw, ih }; 3109 return EINA_RECT(ix, iy, iw, ih);
3110} 3110}
3111 3111
3112EOLIAN static Eina_Rectangle 3112EOLIAN static Eina_Rect
3113_elm_list_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd) 3113_elm_list_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd)
3114{ 3114{
3115 Eina_Rectangle r = {}; 3115 Eina_Rect r = {};
3116 3116
3117 if (sd->focused_item) 3117 if (sd->focused_item)
3118 { 3118 {
diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c
index 76e7ba9..c32e7a8 100644
--- a/src/lib/elementary/elm_menu.c
+++ b/src/lib/elementary/elm_menu.c
@@ -184,7 +184,6 @@ _sizing_eval(Evas_Object *obj)
184 Elm_Object_Item *eo_item; 184 Elm_Object_Item *eo_item;
185 Evas_Coord x_p, y_p, w_p, h_p, x2, y2, w2, h2, bw, bh; 185 Evas_Coord x_p, y_p, w_p, h_p, x2, y2, w2, h2, bw, bh;
186 Elm_Widget_Smart_Data *hover; 186 Elm_Widget_Smart_Data *hover;
187 Eina_Rectangle r;
188 187
189 ELM_MENU_DATA_GET(obj, sd); 188 ELM_MENU_DATA_GET(obj, sd);
190 189
@@ -211,8 +210,7 @@ _sizing_eval(Evas_Object *obj)
211 if (y_p + h_p + bh > y2 + h2) y_p -= y_p + h_p + bh - (y2 + h2); 210 if (y_p + h_p + bh > y2 + h2) y_p -= y_p + h_p + bh - (y2 + h2);
212 if (y_p < y2) y_p = y2; 211 if (y_p < y2) y_p = y2;
213 212
214 r = (Eina_Rectangle) { x_p, y_p, bw, h_p }; 213 efl_gfx_geometry_set(sd->location, EINA_RECT(x_p, y_p, bw, h_p));
215 efl_gfx_geometry_set(sd->location, r);
216 evas_object_size_hint_min_set(sd->location, bw, h_p); 214 evas_object_size_hint_min_set(sd->location, bw, h_p);
217 evas_object_size_hint_max_set(sd->location, bw, h_p); 215 evas_object_size_hint_max_set(sd->location, bw, h_p);
218 elm_hover_target_set(sd->hv, sd->location); 216 elm_hover_target_set(sd->hv, sd->location);
diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c
index 011fe9a..219315f 100644
--- a/src/lib/elementary/elm_panel.c
+++ b/src/lib/elementary/elm_panel.c
@@ -1107,10 +1107,10 @@ _elm_panel_toggle(Eo *obj, Elm_Panel_Data *_pd EINA_UNUSED)
1107 _panel_toggle(NULL, obj, NULL, NULL); 1107 _panel_toggle(NULL, obj, NULL, NULL);
1108} 1108}
1109 1109
1110EOLIAN static Eina_Rectangle 1110EOLIAN static Eina_Rect
1111_elm_panel_elm_widget_focus_region_get(Eo *obj, Elm_Panel_Data *sd) 1111_elm_panel_elm_widget_focus_region_get(Eo *obj, Elm_Panel_Data *sd)
1112{ 1112{
1113 Eina_Rectangle r = {}; 1113 Eina_Rect r = {};
1114 1114
1115 elm_interface_scrollable_content_pos_get(obj, &r.x, &r.y); 1115 elm_interface_scrollable_content_pos_get(obj, &r.x, &r.y);
1116 evas_object_geometry_get(obj, NULL, NULL, &r.w, &r.h); 1116 evas_object_geometry_get(obj, NULL, NULL, &r.w, &r.h);
diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c
index 40983e7..95f2694 100644
--- a/src/lib/elementary/elm_scroller.c
+++ b/src/lib/elementary/elm_scroller.c
@@ -536,7 +536,7 @@ _elm_scroller_elm_widget_focus_direction(Eo *obj, Elm_Scroller_Data *sd, const E
536} 536}
537 537
538static void 538static void
539_show_region_hook(void *data, Evas_Object *content_obj EINA_UNUSED, Eina_Rectangle r) 539_show_region_hook(void *data, Evas_Object *content_obj EINA_UNUSED, Eina_Rect r)
540{ 540{
541 elm_interface_scrollable_content_region_show(data, r.x, r.y, r.w, r.h); 541 elm_interface_scrollable_content_region_show(data, r.x, r.y, r.w, r.h);
542} 542}
diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c
index cf9bc72..91f126c 100644
--- a/src/lib/elementary/elm_toolbar.c
+++ b/src/lib/elementary/elm_toolbar.c
@@ -2414,10 +2414,10 @@ _access_widget_item_register(Elm_Toolbar_Item_Data *it)
2414 _elm_access_activate_callback_set(ai, _access_activate_cb, NULL); 2414 _elm_access_activate_callback_set(ai, _access_activate_cb, NULL);
2415} 2415}
2416 2416
2417EOLIAN static Eina_Rectangle 2417EOLIAN static Eina_Rect
2418_elm_toolbar_item_efl_ui_focus_object_focus_geometry_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Item_Data *pd) 2418_elm_toolbar_item_efl_ui_focus_object_focus_geometry_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Item_Data *pd)
2419{ 2419{
2420 Eina_Rectangle rect; 2420 Eina_Rect rect;
2421 2421
2422 evas_object_geometry_get(VIEW(pd), &rect.x, &rect.y, &rect.w, &rect.h); 2422 evas_object_geometry_get(VIEW(pd), &rect.x, &rect.y, &rect.w, &rect.h);
2423 2423
@@ -3010,17 +3010,17 @@ _elm_toolbar_elm_widget_on_access_update(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *
3010 _access_obj_process(sd, _elm_toolbar_smart_focus_next_enable); 3010 _access_obj_process(sd, _elm_toolbar_smart_focus_next_enable);
3011} 3011}
3012 3012
3013static Eina_Rectangle 3013static Eina_Rect
3014_elm_toolbar_coordinates_adjust(Elm_Toolbar_Item_Data *it) 3014_elm_toolbar_coordinates_adjust(Elm_Toolbar_Item_Data *it)
3015{ 3015{
3016 ELM_TOOLBAR_DATA_GET(WIDGET(it), sd); 3016 ELM_TOOLBAR_DATA_GET(WIDGET(it), sd);
3017 3017
3018 Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh; 3018 Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh;
3019 Eina_Rectangle r; 3019 Eina_Rect r;
3020 3020
3021 evas_object_geometry_get(sd->hit_rect, &vx, &vy, &vw, &vh); 3021 evas_object_geometry_get(sd->hit_rect, &vx, &vy, &vw, &vh);
3022 evas_object_geometry_get(VIEW(it), &ix, &iy, &iw, &ih); 3022 evas_object_geometry_get(VIEW(it), &ix, &iy, &iw, &ih);
3023 r = (Eina_Rectangle) { ix, iy, iw, ih }; 3023 r = EINA_RECT(ix, iy, iw, ih);
3024 3024
3025 if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) 3025 if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
3026 { 3026 {
@@ -3049,10 +3049,10 @@ _elm_toolbar_item_efl_ui_focus_object_focus_set(Eo *obj, Elm_Toolbar_Item_Data *
3049 elm_wdg_item_focus_set(obj, focus); 3049 elm_wdg_item_focus_set(obj, focus);
3050} 3050}
3051 3051
3052EOLIAN static Eina_Rectangle 3052EOLIAN static Eina_Rect
3053_elm_toolbar_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Toolbar_Data *sd) 3053_elm_toolbar_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Toolbar_Data *sd)
3054{ 3054{
3055 Eina_Rectangle r = {}; 3055 Eina_Rect r = {};
3056 3056
3057 if (sd->focused_item) 3057 if (sd->focused_item)
3058 { 3058 {
diff --git a/src/lib/elementary/elm_transit.c b/src/lib/elementary/elm_transit.c
index 69c9604..0da1781 100644
--- a/src/lib/elementary/elm_transit.c
+++ b/src/lib/elementary/elm_transit.c
@@ -506,12 +506,12 @@ _recover_image_uv(Evas_Object *obj, Evas_Map *map, Eina_Bool revert, Eina_Bool b
506 //Zooming image fill area. 506 //Zooming image fill area.
507 else 507 else
508 { 508 {
509 Eina_Rectangle fill; 509 Eina_Rect fill;
510 510
511 fill = efl_gfx_fill_get(obj); 511 fill = efl_gfx_fill_get(obj);
512 efl_gfx_size_get(obj, &w, &h); 512 efl_gfx_size_get(obj, &w, &h);
513 513
514 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_rectangle_is_valid(&fill), EINA_FALSE); 514 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_rectangle_is_valid(&fill.rect), EINA_FALSE);
515 double rate_x = (double) w / (double) fill.w; 515 double rate_x = (double) w / (double) fill.w;
516 double rate_y = (double) h / (double) fill.h; 516 double rate_y = (double) h / (double) fill.h;
517 double rate_x2 = (double) iw / (double) fill.w; 517 double rate_x2 = (double) iw / (double) fill.w;
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 1494350..4c02e6f 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -1122,14 +1122,14 @@ EOLIAN static void
1122_elm_widget_focus_region_show(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED) 1122_elm_widget_focus_region_show(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED)
1123{ 1123{
1124 Evas_Coord ox, oy; 1124 Evas_Coord ox, oy;
1125 Eina_Rectangle r; 1125 Eina_Rect r;
1126 Evas_Object *o; 1126 Evas_Object *o;
1127 1127
1128 o = elm_widget_parent_get(obj); 1128 o = elm_widget_parent_get(obj);
1129 if (!o) return; 1129 if (!o) return;
1130 1130
1131 r = elm_widget_focus_region_get(obj); 1131 r = elm_widget_focus_region_get(obj);
1132 if (eina_rectangle_is_empty(&r)) return; 1132 if (eina_rectangle_is_empty(&r.rect)) return;
1133 1133
1134 evas_object_geometry_get(obj, &ox, &oy, NULL, NULL); 1134 evas_object_geometry_get(obj, &ox, &oy, NULL, NULL);
1135 1135
@@ -3467,14 +3467,14 @@ _elm_widget_disabled_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
3467} 3467}
3468 3468
3469EOLIAN static void 3469EOLIAN static void
3470_elm_widget_show_region_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Rectangle sr, Eina_Bool forceshow) 3470_elm_widget_show_region_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Rect sr, Eina_Bool forceshow)
3471{ 3471{
3472 Evas_Object *parent_obj, *child_obj; 3472 Evas_Object *parent_obj, *child_obj;
3473 Evas_Coord px, py, cx, cy, nx = 0, ny = 0; 3473 Evas_Coord px, py, cx, cy, nx = 0, ny = 0;
3474 3474
3475 evas_smart_objects_calculate(evas_object_evas_get(obj)); 3475 evas_smart_objects_calculate(evas_object_evas_get(obj));
3476 3476
3477 if (!forceshow && eina_rectangle_equal(&sr, &sd->show_region)) return; 3477 if (!forceshow && eina_rectangle_equal(&sr.rect, &sd->show_region.rect)) return;
3478 3478
3479 sd->show_region = sr; 3479 sd->show_region = sr;
3480 if (sd->on_show_region) 3480 if (sd->on_show_region)
@@ -3510,10 +3510,10 @@ _elm_widget_show_region_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Rectangle s
3510 while (parent_obj); 3510 while (parent_obj);
3511} 3511}
3512 3512
3513EOLIAN static Eina_Rectangle 3513EOLIAN static Eina_Rect
3514_elm_widget_show_region_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd) 3514_elm_widget_show_region_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
3515{ 3515{
3516 return sd->show_region; 3516 return (Eina_Rect) sd->show_region;
3517} 3517}
3518 3518
3519/** 3519/**
@@ -3534,10 +3534,10 @@ _elm_widget_show_region_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
3534 * 3534 *
3535 * @ingroup Widget 3535 * @ingroup Widget
3536 */ 3536 */
3537EOLIAN static Eina_Rectangle 3537EOLIAN static Eina_Rect
3538_elm_widget_focus_region_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED) 3538_elm_widget_focus_region_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED)
3539{ 3539{
3540 Eina_Rectangle r = {}; 3540 Eina_Rect r = {};
3541 efl_gfx_size_get(obj, &r.w, &r.h); 3541 efl_gfx_size_get(obj, &r.w, &r.h);
3542 return r; 3542 return r;
3543} 3543}
@@ -4516,12 +4516,12 @@ elm_widget_focus_highlight_focus_part_geometry_get(const Evas_Object *obj,
4516 if (th != *h) *h = th; 4516 if (th != *h) *h = th;
4517} 4517}
4518 4518
4519EOLIAN static Eina_Rectangle 4519EOLIAN static Eina_Rect
4520_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Widget_Smart_Data *sd) 4520_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Widget_Smart_Data *sd)
4521{ 4521{
4522 Evas_Coord ox = 0, oy = 0, ow = 0, oh = 0; 4522 Evas_Coord ox = 0, oy = 0, ow = 0, oh = 0;
4523 Evas_Object *scroller = (Evas_Object *)obj; 4523 Evas_Object *scroller = (Evas_Object *)obj;
4524 Eina_Rectangle r = {}; 4524 Eina_Rect r = {};
4525 4525
4526 evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h); 4526 evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h);
4527 elm_widget_focus_highlight_focus_part_geometry_get(sd->resize_obj, &r.x, &r.y, &r.w, &r.h); 4527 elm_widget_focus_highlight_focus_part_geometry_get(sd->resize_obj, &r.x, &r.y, &r.w, &r.h);
@@ -6425,10 +6425,10 @@ _elm_widget_elm_interface_atspi_accessible_attributes_get(Eo *obj, Elm_Widget_Sm
6425 return ret; 6425 return ret;
6426} 6426}
6427 6427
6428EOLIAN static Eina_Rectangle 6428EOLIAN static Eina_Rect
6429_elm_widget_item_efl_access_component_extents_get(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords) 6429_elm_widget_item_efl_access_component_extents_get(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords)
6430{ 6430{
6431 Eina_Rectangle r = { -1, -1, -1, -1 }; 6431 Eina_Rect r = EINA_RECT(-1, -1, -1, -1);
6432 int ee_x, ee_y; 6432 int ee_x, ee_y;
6433 6433
6434 if (!sd->view) return r; 6434 if (!sd->view) return r;
@@ -6448,7 +6448,7 @@ _elm_widget_item_efl_access_component_extents_get(Eo *obj EINA_UNUSED, Elm_Widge
6448} 6448}
6449 6449
6450EOLIAN static Eina_Bool 6450EOLIAN static Eina_Bool
6451_elm_widget_item_efl_access_component_extents_set(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords EINA_UNUSED, Eina_Rectangle r EINA_UNUSED) 6451_elm_widget_item_efl_access_component_extents_set(Eo *obj EINA_UNUSED, Elm_Widget_Item_Data *sd EINA_UNUSED, Eina_Bool screen_coords EINA_UNUSED, Eina_Rect r EINA_UNUSED)
6452{ 6452{
6453 return EINA_FALSE; 6453 return EINA_FALSE;
6454} 6454}
@@ -6509,7 +6509,7 @@ _elm_widget_efl_ui_focus_user_manager_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_
6509 return pd->focus.manager; 6509 return pd->focus.manager;
6510} 6510}
6511 6511
6512EOLIAN static Eina_Rectangle 6512EOLIAN static Eina_Rect
6513_elm_widget_efl_ui_focus_object_focus_geometry_get(Eo *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) 6513_elm_widget_efl_ui_focus_object_focus_geometry_get(Eo *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED)
6514{ 6514{
6515 return efl_gfx_geometry_get(obj); 6515 return efl_gfx_geometry_get(obj);
diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo
index 5dab902..babe00c 100644
--- a/src/lib/elementary/elm_widget.eo
+++ b/src/lib/elementary/elm_widget.eo
@@ -4,7 +4,7 @@ function Efl.Ui.Scrollable_On_Show_Region {
4 [[Function pointer for on show region hook]] 4 [[Function pointer for on show region hook]]
5 params { 5 params {
6 @in obj: Efl.Canvas.Object; [[Canvas object]] 6 @in obj: Efl.Canvas.Object; [[Canvas object]]
7 @in region: Eina.Rectangle; [[Showed region]] 7 @in region: Eina.Rect; [[Showed region]]
8 } 8 }
9}; 9};
10 10
@@ -435,14 +435,14 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
435 unchanged. 435 unchanged.
436 ]] 436 ]]
437 values { 437 values {
438 region: Eina.Rectangle; [[The region of interest.]] 438 region: Eina.Rect; [[The region of interest.]]
439 force: bool; [[Set to $true to force show even if unchanged.]] 439 force: bool; [[Set to $true to force show even if unchanged.]]
440 } 440 }
441 } 441 }
442 get { 442 get {
443 [[Returns the current region of interest.]] 443 [[Returns the current region of interest.]]
444 values { 444 values {
445 region: Eina.Rectangle; [[The region of interest.]] 445 region: Eina.Rect; [[The region of interest.]]
446 } 446 }
447 } 447 }
448 } 448 }
@@ -484,7 +484,7 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
484 get { 484 get {
485 } 485 }
486 values { 486 values {
487 region: Eina.Rectangle; 487 region: Eina.Rect;
488 [[The relative region to show. If width or height is <= 0 it 488 [[The relative region to show. If width or height is <= 0 it
489 will be ignored, and no action will be taken.]] 489 will be ignored, and no action will be taken.]]
490 } 490 }
@@ -512,7 +512,7 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
512 [[This is a read-only property.]] 512 [[This is a read-only property.]]
513 } 513 }
514 values { 514 values {
515 region: Eina.Rectangle; [[The rectangle area.]] 515 region: Eina.Rect; [[The rectangle area.]]
516 } 516 }
517 } 517 }
518 @property focus_highlight_enabled { 518 @property focus_highlight_enabled {
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index 0e51f61..799ec11 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -312,8 +312,6 @@ typedef void (*Elm_Widget_Focus_Set_Cb)(void *data, Eina_Bool f
312typedef Eina_Bool (*Elm_Widget_Focus_Get_Cb)(const void *data); 312typedef Eina_Bool (*Elm_Widget_Focus_Get_Cb)(const void *data);
313 313
314typedef void (*Elm_Access_On_Highlight_Cb)(void *data); 314typedef void (*Elm_Access_On_Highlight_Cb)(void *data);
315
316typedef void (*region_hook_func_type)(void *data, Evas_Object *obj, Eina_Rectangle region);
317typedef void * (*list_data_get_func_type)(const Eina_List * l); 315typedef void * (*list_data_get_func_type)(const Eina_List * l);
318 316
319#include "elm_widget.eo.h" 317#include "elm_widget.eo.h"
@@ -396,7 +394,7 @@ typedef struct _Elm_Widget_Smart_Data
396 /* "show region" coordinates. all widgets got those because this 394 /* "show region" coordinates. all widgets got those because this
397 * info may be set and queried recursively through the widget 395 * info may be set and queried recursively through the widget
398 * parenting tree */ 396 * parenting tree */
399 Eina_Rectangle show_region; 397 Eina_Rect show_region;
400 398
401 /* scrolling hold/freeze hints. all widgets got those because this 399 /* scrolling hold/freeze hints. all widgets got those because this
402 * info may be set and queried recursively through the widget 400 * info may be set and queried recursively through the widget
@@ -697,9 +695,9 @@ EAPI const Elm_Widget_Smart_Class *elm_widget_smart_class_get(void);
697 695
698EAPI void elm_widget_disabled_set(Evas_Object *obj, Eina_Bool disabled); 696EAPI void elm_widget_disabled_set(Evas_Object *obj, Eina_Bool disabled);
699EAPI Eina_Bool elm_widget_disabled_get(const Evas_Object *obj); 697EAPI Eina_Bool elm_widget_disabled_get(const Evas_Object *obj);
700EAPI void elm_widget_show_region_set(Evas_Object *obj, Eina_Rectangle sr, Eina_Bool forceshow); 698EAPI void elm_widget_show_region_set(Evas_Object *obj, Eina_Rect sr, Eina_Bool forceshow);
701EAPI Eina_Rectangle elm_widget_show_region_get(const Evas_Object *obj); 699EAPI Eina_Rect elm_widget_show_region_get(const Evas_Object *obj);
702EAPI Eina_Rectangle elm_widget_focus_region_get(const Evas_Object *obj); 700EAPI Eina_Rect elm_widget_focus_region_get(const Evas_Object *obj);
703EAPI void elm_widget_focus_region_show(Evas_Object *obj); 701EAPI void elm_widget_focus_region_show(Evas_Object *obj);
704EAPI void elm_widget_scroll_hold_push(Evas_Object *obj); 702EAPI void elm_widget_scroll_hold_push(Evas_Object *obj);
705EAPI void elm_widget_scroll_hold_pop(Evas_Object *obj); 703EAPI void elm_widget_scroll_hold_pop(Evas_Object *obj);
@@ -741,7 +739,7 @@ EAPI void elm_widget_access_info_set(Evas_Object *obj, const char *t
741EAPI const char *elm_widget_access_info_get(const Evas_Object *obj); 739EAPI const char *elm_widget_access_info_get(const Evas_Object *obj);
742EAPI void elm_widget_orientation_mode_disabled_set(Evas_Object *obj, Eina_Bool disabled); 740EAPI void elm_widget_orientation_mode_disabled_set(Evas_Object *obj, Eina_Bool disabled);
743EAPI Eina_Bool elm_widget_orientation_mode_disabled_get(const Evas_Object *obj); 741EAPI Eina_Bool elm_widget_orientation_mode_disabled_get(const Evas_Object *obj);
744EAPI Eina_Rectangle elm_widget_focus_highlight_geometry_get(const Evas_Object *obj); 742EAPI Eina_Rect elm_widget_focus_highlight_geometry_get(const Evas_Object *obj);
745void _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *it); 743void _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *it);
746EAPI void elm_widget_focus_region_show_mode_set(Evas_Object *obj, Elm_Focus_Region_Show_Mode mode); 744EAPI void elm_widget_focus_region_show_mode_set(Evas_Object *obj, Elm_Focus_Region_Show_Mode mode);
747EAPI Elm_Focus_Region_Show_Mode elm_widget_focus_region_show_mode_get(const Evas_Object *obj); 745EAPI Elm_Focus_Region_Show_Mode elm_widget_focus_region_show_mode_get(const Evas_Object *obj);
diff --git a/src/lib/eo/eina_types.eot b/src/lib/eo/eina_types.eot
index 83be600..f340ef3 100644
--- a/src/lib/eo/eina_types.eot
+++ b/src/lib/eo/eina_types.eot
@@ -1,10 +1,22 @@
1/* FIXME: Move to Eina when we decide they are handled properly. */ 1/* FIXME: Move to Eina when we decide they are handled properly. */
2struct @extern Eina.Rectangle { 2struct @extern Eina.Rect {
3 [[Eina Rectangle]] 3 [[A rectangle in pixel dimensions.]]
4 x: int; [[X coordinate of the rectangle]] 4 x: int; [[X coordinate of the rectangle, from the top-left corner.]]
5 y: int; [[Y coordinate of the rectangle]] 5 y: int; [[Y coordinate of the rectangle, from the top-left corner.]]
6 w: int; [[Width of the rectangle]] 6 w: int; [[Width of the rectangle in pixels.]]
7 h: int; [[Height of the rectangle]] 7 h: int; [[Height of the rectangle in pixels.]]
8}
9
10struct @extern Eina.Position2D {
11 [[A 2D location in pixels.]]
12 x: int; [[X position in pixels, from the top-left corner.]]
13 y: int; [[Y position in pixels, from the top-left corner.]]
14}
15
16struct @extern Eina.Size2D {
17 [[A 2D size in pixels.]]
18 w: int; [[X position in pixels, from the top-left corner.]]
19 h: int; [[Y position in pixels, from the top-left corner.]]
8} 20}
9 21
10struct @extern Eina.File; [[Eina file data structure]] 22struct @extern Eina.File; [[Eina file data structure]]
diff --git a/src/lib/evas/canvas/efl_canvas_text.eo b/src/lib/evas/canvas/efl_canvas_text.eo
index 6600e7a..0cbe8e1 100644
--- a/src/lib/evas/canvas/efl_canvas_text.eo
+++ b/src/lib/evas/canvas/efl_canvas_text.eo
@@ -178,7 +178,7 @@ Efl.Text.Font, Efl.Text.Style, Efl.Text.Format, Efl.Text.Cursor, Efl.Text.Annota
178 @in cur1: const(ptr(Efl.Text.Cursor.Cursor)); [[Start of range]] 178 @in cur1: const(ptr(Efl.Text.Cursor.Cursor)); [[Start of range]]
179 @in cur2: const(ptr(Efl.Text.Cursor.Cursor)); [[End of range]] 179 @in cur2: const(ptr(Efl.Text.Cursor.Cursor)); [[End of range]]
180 } 180 }
181 return: iterator<Eina.Rectangle> @owned; [[ 181 return: iterator<Eina.Rect> @owned; [[
182 Iterator on all geoemtries of the given range 182 Iterator on all geoemtries of the given range
183 ]] 183 ]]
184 } 184 }
@@ -196,7 +196,7 @@ Efl.Text.Font, Efl.Text.Style, Efl.Text.Format, Efl.Text.Cursor, Efl.Text.Annota
196 @in cur1: ptr(const(Efl.Text.Cursor.Cursor)); [[Start of range]] 196 @in cur1: ptr(const(Efl.Text.Cursor.Cursor)); [[Start of range]]
197 @in cur2: ptr(const(Efl.Text.Cursor.Cursor)); [[End of range]] 197 @in cur2: ptr(const(Efl.Text.Cursor.Cursor)); [[End of range]]
198 } 198 }
199 return: iterator<Eina.Rectangle> @owned; [[ 199 return: iterator<Eina.Rect> @owned; [[
200 Iterator on all simple geometries of the given range 200 Iterator on all simple geometries of the given range
201 ]] 201 ]]
202 } 202 }
diff --git a/src/lib/evas/canvas/efl_gfx_map.c b/src/lib/evas/canvas/efl_gfx_map.c
index 5f434b7..f44d1b4 100644
--- a/src/lib/evas/canvas/efl_gfx_map.c
+++ b/src/lib/evas/canvas/efl_gfx_map.c
@@ -78,7 +78,7 @@ struct _Gfx_Map_Pivot
78 78
79 Evas_Object_Protected_Data *map_obj; 79 Evas_Object_Protected_Data *map_obj;
80 Eo *eo_obj; // strong or weak ref? 80 Eo *eo_obj; // strong or weak ref?
81 Eina_Rectangle geometry; 81 Eina_Rect geometry;
82 Eina_Bool event_cbs; 82 Eina_Bool event_cbs;
83 Eina_Bool is_evas; 83 Eina_Bool is_evas;
84 Eina_Bool is_canvas; 84 Eina_Bool is_canvas;
diff --git a/src/lib/evas/canvas/efl_vg.eo b/src/lib/evas/canvas/efl_vg.eo
index beb1328..e44a852 100644
--- a/src/lib/evas/canvas/efl_vg.eo
+++ b/src/lib/evas/canvas/efl_vg.eo
@@ -90,7 +90,7 @@ abstract Efl.VG (Efl.Object, Efl.Gfx, Efl.Gfx.Stack)
90 90
91 @since 1.14]] 91 @since 1.14]]
92 params { 92 params {
93 @out r: Eina.Rectangle; [[Bounding box to be returned.]] 93 @out r: Eina.Rect; [[Bounding box to be returned.]]
94 } 94 }
95 } 95 }
96 interpolate { 96 interpolate {
diff --git a/src/lib/evas/canvas/evas_canvas.eo b/src/lib/evas/canvas/evas_canvas.eo
index a00e5f2..65a5a22 100644
--- a/src/lib/evas/canvas/evas_canvas.eo
+++ b/src/lib/evas/canvas/evas_canvas.eo
@@ -571,10 +571,10 @@ class Evas.Canvas (Efl.Object, Efl.Canvas, Efl.Animator, Efl.Input.Interface,
571 571
572 @since 1.15 572 @since 1.15
573 ]] 573 ]]
574 return: free(list<ptr(Eina.Rectangle)>, evas_render_updates_free) 574 return: free(list<ptr(Eina.Rect)>, evas_render_updates_free)
575 @owned @warn_unused; [[ 575 @owned @warn_unused; [[
576 A newly allocated list of updated rectangles of the canvas 576 A newly allocated list of updated rectangles of the canvas
577 ($Eina.Rectangle structs). Free this list with 577 ($Eina.Rect structs). Free this list with
578 \@ref evas_render_updates_free. 578 \@ref evas_render_updates_free.
579 ]] 579 ]]
580 } 580 }
@@ -866,10 +866,10 @@ class Evas.Canvas (Efl.Object, Efl.Canvas, Efl.Animator, Efl.Input.Interface,
866 866
867 See the full @ref Example_Evas_Events "example". 867 See the full @ref Example_Evas_Events "example".
868 */ 868 */
869 return: free(list<ptr(Eina.Rectangle)>, evas_render_updates_free) 869 return: free(list<ptr(Eina.Rect)>, evas_render_updates_free)
870 @owned @warn_unused; [[ 870 @owned @warn_unused; [[
871 A newly allocated list of updated rectangles of the canvas 871 A newly allocated list of updated rectangles of the canvas
872 ($Eina.Rectangle structs). Free this list with 872 ($Eina.Rect structs). Free this list with
873 \@ref evas_render_updates_free. 873 \@ref evas_render_updates_free.
874 ]] 874 ]]
875 } 875 }
diff --git a/src/lib/evas/canvas/evas_image_legacy.c b/src/lib/evas/canvas/evas_image_legacy.c
index 9b75571..c78c97d 100644
--- a/src/lib/evas/canvas/evas_image_legacy.c
+++ b/src/lib/evas/canvas/evas_image_legacy.c
@@ -90,7 +90,7 @@ evas_object_image_fill_get(const Evas_Object *obj,
90 Evas_Coord *x, Evas_Coord *y, 90 Evas_Coord *x, Evas_Coord *y,
91 Evas_Coord *w, Evas_Coord *h) 91 Evas_Coord *w, Evas_Coord *h)
92{ 92{
93 Eina_Rectangle r; 93 Eina_Rect r;
94 94
95 EVAS_IMAGE_API(obj); 95 EVAS_IMAGE_API(obj);
96 r = efl_gfx_fill_get(obj); 96 r = efl_gfx_fill_get(obj);
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 452311e..05b7ca0 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -668,7 +668,7 @@ _evas_image_fill_set(Eo *eo_obj, Evas_Image_Data *o, int x, int y, int w, int h)
668} 668}
669 669
670EOLIAN static void 670EOLIAN static void
671_efl_canvas_image_internal_efl_gfx_fill_fill_set(Eo *eo_obj, Evas_Image_Data *o, Eina_Rectangle fill) 671_efl_canvas_image_internal_efl_gfx_fill_fill_set(Eo *eo_obj, Evas_Image_Data *o, Eina_Rect fill)
672{ 672{
673 // Should (0,0,0,0) reset the filled flag to true? 673 // Should (0,0,0,0) reset the filled flag to true?
674 o->filled = EINA_FALSE; 674 o->filled = EINA_FALSE;
@@ -676,10 +676,10 @@ _efl_canvas_image_internal_efl_gfx_fill_fill_set(Eo *eo_obj, Evas_Image_Data *o,
676 _evas_image_fill_set(eo_obj, o, fill.x, fill.y, fill.w, fill.h); 676 _evas_image_fill_set(eo_obj, o, fill.x, fill.y, fill.w, fill.h);
677} 677}
678 678
679EOLIAN static Eina_Rectangle 679EOLIAN static Eina_Rect
680_efl_canvas_image_internal_efl_gfx_fill_fill_get(Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o) 680_efl_canvas_image_internal_efl_gfx_fill_fill_get(Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o)
681{ 681{
682 return o->cur->fill; 682 return (Eina_Rect) o->cur->fill;
683} 683}
684 684
685EOLIAN static void 685EOLIAN static void
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index 8ad0e78..4fc7a13 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -1156,7 +1156,7 @@ end:
1156} 1156}
1157 1157
1158EOLIAN static void 1158EOLIAN static void
1159_efl_canvas_object_efl_gfx_geometry_set(Eo *obj, Evas_Object_Protected_Data *pd EINA_UNUSED, Eina_Rectangle 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.x, r.y);
1162 efl_gfx_size_set(obj, r.w, r.h); 1162 efl_gfx_size_set(obj, r.w, r.h);
@@ -1168,7 +1168,7 @@ evas_object_geometry_set(Evas_Object *eo_obj, Evas_Coord x, Evas_Coord y, Evas_C
1168 MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); 1168 MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
1169 return; 1169 return;
1170 MAGIC_CHECK_END(); 1170 MAGIC_CHECK_END();
1171 efl_gfx_geometry_set(eo_obj, (Eina_Rectangle) { x, y, w, h }); 1171 efl_gfx_geometry_set(eo_obj, EINA_RECT(x, y, w, h));
1172} 1172}
1173 1173
1174EAPI void 1174EAPI void
@@ -1316,16 +1316,16 @@ _efl_canvas_object_efl_gfx_size_set(Eo *eo_obj, Evas_Object_Protected_Data *obj,
1316 evas_object_inform_call_resize(eo_obj); 1316 evas_object_inform_call_resize(eo_obj);
1317} 1317}
1318 1318
1319EOLIAN Eina_Rectangle 1319EOLIAN Eina_Rect
1320_efl_canvas_object_efl_gfx_geometry_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj) 1320_efl_canvas_object_efl_gfx_geometry_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
1321{ 1321{
1322 return obj->cur->geometry; 1322 return (Eina_Rect) obj->cur->geometry;
1323} 1323}
1324 1324
1325EAPI void 1325EAPI void
1326evas_object_geometry_get(const Evas_Object *eo_obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) 1326evas_object_geometry_get(const Evas_Object *eo_obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
1327{ 1327{
1328 Eina_Rectangle r = efl_gfx_geometry_get(eo_obj); 1328 Eina_Rect r = efl_gfx_geometry_get(eo_obj);
1329 if (x) *x = r.x; 1329 if (x) *x = r.x;
1330 if (y) *y = r.y; 1330 if (y) *y = r.y;
1331 if (w) *w = r.w; 1331 if (w) *w = r.w;
diff --git a/src/lib/evas/canvas/evas_object_vg.c b/src/lib/evas/canvas/evas_object_vg.c
index 19a4b45..006f070 100644
--- a/src/lib/evas/canvas/evas_object_vg.c
+++ b/src/lib/evas/canvas/evas_object_vg.c
@@ -418,12 +418,12 @@ _evas_vg_efl_gfx_view_view_size_set(Eo *obj EINA_UNUSED, Evas_VG_Data *pd,
418} 418}
419 419
420void 420void
421_evas_vg_efl_gfx_fill_fill_set(Eo *obj EINA_UNUSED, Evas_VG_Data *pd, Eina_Rectangle fill) 421_evas_vg_efl_gfx_fill_fill_set(Eo *obj EINA_UNUSED, Evas_VG_Data *pd, Eina_Rect fill)
422{ 422{
423 pd->fill = fill; 423 pd->fill = fill;
424} 424}
425 425
426Eina_Rectangle 426Eina_Rect
427_evas_vg_efl_gfx_fill_fill_get(Eo *obj EINA_UNUSED, Evas_VG_Data *pd) 427_evas_vg_efl_gfx_fill_fill_get(Eo *obj EINA_UNUSED, Evas_VG_Data *pd)
428{ 428{
429 return pd->fill; 429 return pd->fill;
diff --git a/src/lib/evas/canvas/evas_vg_container.c b/src/lib/evas/canvas/evas_vg_container.c
index 7534150..704d6c1 100644
--- a/src/lib/evas/canvas/evas_vg_container.c
+++ b/src/lib/evas/canvas/evas_vg_container.c
@@ -66,15 +66,15 @@ _efl_vg_container_efl_object_destructor(Eo *obj,
66 66
67static void 67static void
68_efl_vg_container_efl_vg_bounds_get(Eo *obj EINA_UNUSED, 68_efl_vg_container_efl_vg_bounds_get(Eo *obj EINA_UNUSED,
69 Efl_VG_Container_Data *pd, 69 Efl_VG_Container_Data *pd,
70 Eina_Rectangle *r) 70 Eina_Rect *r)
71{ 71{
72 Eina_Rectangle s; 72 Eina_Rect s;
73 Eina_Bool first = EINA_TRUE; 73 Eina_Bool first = EINA_TRUE;
74 Eina_List *l; 74 Eina_List *l;
75 Eo *child; 75 Eo *child;
76 76
77 EINA_RECTANGLE_SET(&s, -1, -1, 0, 0); 77 EINA_RECT_SET(s, -1, -1, 0, 0);
78 78
79 EINA_LIST_FOREACH(pd->children, l, child) 79 EINA_LIST_FOREACH(pd->children, l, child)
80 { 80 {
@@ -86,7 +86,7 @@ _efl_vg_container_efl_vg_bounds_get(Eo *obj EINA_UNUSED,
86 else 86 else
87 { 87 {
88 efl_vg_bounds_get(child, &s); 88 efl_vg_bounds_get(child, &s);
89 eina_rectangle_union(r, &s); 89 eina_rectangle_union(&r->rect, &s.rect);
90 } 90 }
91 } 91 }
92} 92}
diff --git a/src/lib/evas/canvas/evas_vg_gradient_linear.c b/src/lib/evas/canvas/evas_vg_gradient_linear.c
index a1e9046..fcefa55 100644
--- a/src/lib/evas/canvas/evas_vg_gradient_linear.c
+++ b/src/lib/evas/canvas/evas_vg_gradient_linear.c
@@ -112,7 +112,7 @@ _efl_vg_gradient_linear_efl_object_destructor(Eo *obj, Efl_VG_Gradient_Linear_Da
112} 112}
113 113
114static void 114static void
115_efl_vg_gradient_linear_efl_vg_bounds_get(Eo *obj, Efl_VG_Gradient_Linear_Data *pd, Eina_Rectangle *r) 115_efl_vg_gradient_linear_efl_vg_bounds_get(Eo *obj, Efl_VG_Gradient_Linear_Data *pd, Eina_Rect *r)
116{ 116{
117 Efl_VG_Data *nd; 117 Efl_VG_Data *nd;
118 118
diff --git a/src/lib/evas/canvas/evas_vg_gradient_radial.c b/src/lib/evas/canvas/evas_vg_gradient_radial.c
index a464e2a..3436df2 100644
--- a/src/lib/evas/canvas/evas_vg_gradient_radial.c
+++ b/src/lib/evas/canvas/evas_vg_gradient_radial.c
@@ -129,7 +129,7 @@ _efl_vg_gradient_radial_efl_object_destructor(Eo *obj,
129} 129}
130 130
131static void 131static void
132_efl_vg_gradient_radial_efl_vg_bounds_get(Eo *obj, Efl_VG_Gradient_Radial_Data *pd, Eina_Rectangle *r) 132_efl_vg_gradient_radial_efl_vg_bounds_get(Eo *obj, Efl_VG_Gradient_Radial_Data *pd, Eina_Rect *r)
133{ 133{
134 Efl_VG_Data *nd; 134 Efl_VG_Data *nd;
135 135
diff --git a/src/lib/evas/canvas/evas_vg_node.c b/src/lib/evas/canvas/evas_vg_node.c
index 3267f76..dd32a50 100644
--- a/src/lib/evas/canvas/evas_vg_node.c
+++ b/src/lib/evas/canvas/evas_vg_node.c
@@ -194,17 +194,17 @@ _efl_vg_efl_gfx_size_get(Eo *obj,
194 Efl_VG_Data *pd EINA_UNUSED, 194 Efl_VG_Data *pd EINA_UNUSED,
195 int *w, int *h) 195 int *w, int *h)
196{ 196{
197 Eina_Rectangle r = { 0, 0, 0, 0 }; 197 Eina_Rect r;
198 198
199 efl_vg_bounds_get(obj, &r); 199 efl_vg_bounds_get(obj, &r);
200 if (w) *w = r.w; 200 if (w) *w = r.w;
201 if (h) *h = r.h; 201 if (h) *h = r.h;
202} 202}
203 203
204EOLIAN static Eina_Rectangle 204EOLIAN static Eina_Rect
205_efl_vg_efl_gfx_geometry_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) 205_efl_vg_efl_gfx_geometry_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED)
206{ 206{
207 Eina_Rectangle r = { 0, }; 207 Eina_Rect r = EINA_RECT_ZERO();
208 efl_gfx_position_get(obj, &r.x, &r.y); 208 efl_gfx_position_get(obj, &r.x, &r.y);
209 efl_gfx_size_get(obj, &r.w, &r.h); 209 efl_gfx_size_get(obj, &r.w, &r.h);
210 return r; 210 return r;
@@ -522,10 +522,10 @@ _efl_vg_root_parent_get(Eo *obj)
522static void 522static void
523_efl_vg_walk_down_at(Eo *root, Eina_Array *a, Eina_Rectangle *r) 523_efl_vg_walk_down_at(Eo *root, Eina_Array *a, Eina_Rectangle *r)
524{ 524{
525 Eina_Rectangle bounds; 525 Eina_Rect bounds;
526 526
527 efl_vg_bounds_get(root, &bounds); 527 efl_vg_bounds_get(root, &bounds);
528 if (!eina_rectangles_intersect(&bounds, r)) return ; 528 if (!eina_rectangles_intersect(&bounds.rect, r)) return ;
529 529
530 eina_array_push(a, root); 530 eina_array_push(a, root);
531 531
@@ -555,7 +555,7 @@ _efl_vg_object_at(Eo *obj, Eina_Array *a, Eina_Rectangle *r)
555static Efl_Gfx_Stack * 555static Efl_Gfx_Stack *
556_efl_vg_efl_gfx_stack_below_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) 556_efl_vg_efl_gfx_stack_below_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED)
557{ 557{
558 Eina_Rectangle r; 558 Eina_Rect r;
559 Eina_Array a; 559 Eina_Array a;
560 Eo *current; 560 Eo *current;
561 Eo *below = NULL; 561 Eo *below = NULL;
@@ -566,7 +566,7 @@ _efl_vg_efl_gfx_stack_below_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED)
566 566
567 eina_array_step_set(&a, sizeof (Eina_Array), 8); 567 eina_array_step_set(&a, sizeof (Eina_Array), 8);
568 568
569 _efl_vg_object_at(obj, &a, &r); 569 _efl_vg_object_at(obj, &a, &r.rect);
570 570
571 EINA_ARRAY_ITER_NEXT(&a, i, current, iterator) 571 EINA_ARRAY_ITER_NEXT(&a, i, current, iterator)
572 if (current == obj) 572 if (current == obj)
@@ -585,7 +585,7 @@ _efl_vg_efl_gfx_stack_below_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED)
585static Efl_Gfx_Stack * 585static Efl_Gfx_Stack *
586_efl_vg_efl_gfx_stack_above_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED) 586_efl_vg_efl_gfx_stack_above_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED)
587{ 587{
588 Eina_Rectangle r; 588 Eina_Rect r;
589 Eina_Array a; 589 Eina_Array a;
590 Eo *current; 590 Eo *current;
591 Eo *above = NULL; 591 Eo *above = NULL;
@@ -596,7 +596,7 @@ _efl_vg_efl_gfx_stack_above_get(Eo *obj, Efl_VG_Data *pd EINA_UNUSED)
596 596
597 eina_array_step_set(&a, sizeof (Eina_Array), 8); 597 eina_array_step_set(&a, sizeof (Eina_Array), 8);
598 598
599 _efl_vg_object_at(obj, &a, &r); 599 _efl_vg_object_at(obj, &a, &r.rect);
600 600
601 EINA_ARRAY_ITER_NEXT(&a, i, current, iterator) 601 EINA_ARRAY_ITER_NEXT(&a, i, current, iterator)
602 if (current == obj) 602 if (current == obj)
diff --git a/src/lib/evas/canvas/evas_vg_private.h b/src/lib/evas/canvas/evas_vg_private.h
index 4598e4f..ac945bc 100644
--- a/src/lib/evas/canvas/evas_vg_private.h
+++ b/src/lib/evas/canvas/evas_vg_private.h
@@ -15,7 +15,7 @@ struct _Evas_VG_Data
15 void *engine_data; 15 void *engine_data;
16 Efl_VG *root; 16 Efl_VG *root;
17 17
18 Eina_Rectangle fill; 18 Eina_Rect fill;
19 19
20 unsigned int width, height; 20 unsigned int width, height;
21 21
diff --git a/src/lib/evas/canvas/evas_vg_shape.c b/src/lib/evas/canvas/evas_vg_shape.c
index a53eb98..a5f0d29 100644
--- a/src/lib/evas/canvas/evas_vg_shape.c
+++ b/src/lib/evas/canvas/evas_vg_shape.c
@@ -18,8 +18,8 @@ struct _Efl_VG_Shape_Data
18 18
19static void 19static void
20_efl_vg_shape_efl_vg_bounds_get(Eo *obj, 20_efl_vg_shape_efl_vg_bounds_get(Eo *obj,
21 Efl_VG_Shape_Data *pd EINA_UNUSED, 21 Efl_VG_Shape_Data *pd EINA_UNUSED,
22 Eina_Rectangle *r) 22 Eina_Rect *r)
23{ 23{
24 // FIXME: Use the renderer bounding box when it has been created instead of an estimation 24 // FIXME: Use the renderer bounding box when it has been created instead of an estimation
25 efl_gfx_path_bounds_get(obj, r); 25 efl_gfx_path_bounds_get(obj, r);