bu5hm4n pushed a commit to branch master.

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

commit 139efaaba325edf738f6cdfb678acac774f100a8
Author: Marcel Hollerbach <mar...@osg.samsung.com>
Date:   Wed Apr 25 14:01:48 2018 +0200

    elm_interface_scrollable: rework filtering
    
    A item might be in the middle of the viewport and still miss relations.
---
 src/lib/elementary/elm_interface_scrollable.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_interface_scrollable.c 
b/src/lib/elementary/elm_interface_scrollable.c
index 7f595a6863..bc4e76b3d4 100644
--- a/src/lib/elementary/elm_interface_scrollable.c
+++ b/src/lib/elementary/elm_interface_scrollable.c
@@ -4824,10 +4824,21 @@ static Eina_Bool
 _filter_cb(const void *iterator EINA_UNUSED, void *data, void *fdata)
 {
    Eina_Rect geom;
+   int min_x, max_x, min_y, max_y;
 
    geom = efl_ui_focus_object_focus_geometry_get(data);
 
-   return eina_rectangles_intersect(&geom.rect, fdata);
+   min_x = geom.rect.x;
+   min_y = geom.rect.y;
+   max_x = eina_rectangle_max_x(&geom.rect);
+   max_y = eina_rectangle_max_y(&geom.rect);
+
+   Eina_Bool inside = eina_rectangle_coords_inside(fdata, min_x, min_y) ||
+                      eina_rectangle_coords_inside(fdata, min_x, max_y) ||
+                      eina_rectangle_coords_inside(fdata, max_x, min_y) ||
+                      eina_rectangle_coords_inside(fdata, max_x, max_y);
+
+   return inside;
 }
 
 EOLIAN static Eina_Iterator*

-- 


Reply via email to