summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>2016-06-04 21:08:10 +0200
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>2016-06-21 15:23:41 +0200
commit2f58b2865ab5220650ff12ea2425286438534a02 (patch)
treefddce1f4c563d1ee85866da6fd2a8ef7f14bf18c
parent41dba94cee834134897e9f3fcc44a5a9f98a67a2 (diff)
downloadefl-2f58b2865ab5220650ff12ea2425286438534a02.tar.gz
scrollable: bring items in when they are focused
-rw-r--r--src/lib/elementary/elm_interface_scrollable.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c
index d39a768028..3f88c17522 100644
--- a/src/lib/elementary/elm_interface_scrollable.c
+++ b/src/lib/elementary/elm_interface_scrollable.c
@@ -4626,10 +4626,21 @@ static Eina_Bool
_focused(void *data, const Eo_Event *event)
{
Efl_Ui_Focus_Manager *manager = efl_ui_focus_object_manager_get(data);
+ Eina_Rectangle geom, vp_geom;
+ Elm_Scrollable_Smart_Interface_Data *pd;
+
+ pd = eo_data_scope_get(data, MY_SCROLLABLE_INTERFACE);
+
//set us as redirect
efl_ui_focus_manager_redirect_set(manager, data);
- //TODO maybe bring them in ?
+ evas_object_geometry_get(pd->content, &vp_geom.x, &vp_geom.y, &vp_geom.w, &vp_geom.h);
+ evas_object_geometry_get(event->object, &geom.x, &geom.y, &geom.w, &geom.h);
+
+ geom.x -= vp_geom.x;
+ geom.y -= vp_geom.y;
+
+ elm_interface_scrollable_region_bring_in(data, geom.x, geom.y, geom.w, geom.h);
return EO_CALLBACK_CONTINUE;
}