bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d15ee47db0f92a41aafea43c7f98a018952773b3

commit d15ee47db0f92a41aafea43c7f98a018952773b3
Author: Marcel Hollerbach <[email protected]>
Date:   Tue Oct 10 21:35:27 2017 +0200

    elm_interface_scrollable: use focus_geometry not normal geometry
---
 src/lib/elementary/elm_interface_scrollable.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/src/lib/elementary/elm_interface_scrollable.c 
b/src/lib/elementary/elm_interface_scrollable.c
index 1f8d67a747..8239bca098 100644
--- a/src/lib/elementary/elm_interface_scrollable.c
+++ b/src/lib/elementary/elm_interface_scrollable.c
@@ -4660,21 +4660,20 @@ EAPI void elm_pan_gravity_get(const Elm_Pan *obj 
EINA_UNUSED, double *x EINA_UNU
 static void
 _focused_element(void *data, const Efl_Event *event)
 {
-   Eina_Rectangle geom;
-   Eina_Rectangle obj_geom;
+   Eina_Rect geom;
    Efl_Ui_Focus_Object *obj = data;
    Efl_Ui_Focus_Object *focus = event->info;
    Elm_Scrollable_Smart_Interface_Data *pd;
+   int pan_x, pan_y;
 
    pd = efl_data_scope_get(obj, MY_SCROLLABLE_INTERFACE);
 
    if (!focus) return;
 
-   evas_object_geometry_get(focus, &geom.x, &geom.y, &geom.w, &geom.h);
-   evas_object_geometry_get(pd->content, &obj_geom.x, &obj_geom.y, 
&obj_geom.w, &obj_geom.h);
-
-   geom.x = geom.x - obj_geom.x;
-   geom.y = geom.y - obj_geom.y;
+   geom = efl_ui_focus_object_focus_geometry_get(focus);
+   elm_obj_pan_pos_get(pd->pan_obj, &pan_x, &pan_y);
+   geom.x = geom.x + pan_x;
+   geom.y = geom.y + pan_y;
 
    elm_interface_scrollable_region_bring_in(obj, geom.x, geom.y, geom.w, 
geom.h);
 }
@@ -4706,11 +4705,11 @@ _elm_interface_scrollable_efl_object_constructor(Eo 
*obj, Elm_Scrollable_Smart_I
 static Eina_Bool
 _filter_cb(const void *iterator EINA_UNUSED, void *data, void *fdata)
 {
-   Eina_Rectangle geom;
+   Eina_Rect geom;
 
-   evas_object_geometry_get(data, &geom.x, &geom.y, &geom.w, &geom.h);
+   geom = efl_ui_focus_object_focus_geometry_get(data);
 
-   return eina_rectangles_intersect(&geom, fdata);
+   return eina_rectangles_intersect(&geom.rect, fdata);
 }
 
 EOLIAN static Eina_Iterator*
@@ -4728,13 +4727,13 @@ 
_elm_interface_scrollable_efl_ui_focus_manager_border_elements_get(Eo *obj, Elm_
 EOLIAN static void
 _elm_interface_scrollable_efl_ui_focus_manager_focus_set(Eo *obj, 
Elm_Scrollable_Smart_Interface_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *focus)
 {
-   Eina_Rectangle geom;
+   Eina_Rect geom;
    int pan_x, pan_y;
 
    EINA_SAFETY_ON_NULL_RETURN(focus);
    efl_ui_focus_manager_focus_set(efl_super(obj, MY_SCROLLABLE_INTERFACE), 
focus);
 
-   evas_object_geometry_get(focus, &geom.x, &geom.y, &geom.w, &geom.h);
+   geom = efl_ui_focus_object_focus_geometry_get(focus);
    elm_obj_pan_pos_get(pd->pan_obj, &pan_x, &pan_y);
    geom.x = geom.x + pan_x;
    geom.y = geom.y + pan_y;

-- 


Reply via email to