diff options
author | Marcel Hollerbach <marcel-hollerbach@t-online.de> | 2016-06-04 21:08:10 +0200 |
---|---|---|
committer | Marcel Hollerbach <marcel-hollerbach@t-online.de> | 2016-06-21 15:23:41 +0200 |
commit | 2f58b2865ab5220650ff12ea2425286438534a02 (patch) | |
tree | fddce1f4c563d1ee85866da6fd2a8ef7f14bf18c | |
parent | 41dba94cee834134897e9f3fcc44a5a9f98a67a2 (diff) | |
download | efl-2f58b2865ab5220650ff12ea2425286438534a02.tar.gz |
scrollable: bring items in when they are focused
-rw-r--r-- | src/lib/elementary/elm_interface_scrollable.c | 13 |
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; } |