diff options
author | Prince Kr Dubey <prince.dubey@gmail.com> | 2015-06-22 11:54:53 +0200 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2015-06-22 12:36:57 +0200 |
commit | e5bbfc208c4ef4037ccd2fc5919fca0f851cc704 (patch) | |
tree | 78a3e9b99e02cf805e349eef440b7e45e65e6c53 | |
parent | 0ad226a6c4a9ebccdbd861d47b713163379b3d87 (diff) | |
download | elementary-e5bbfc208c4ef4037ccd2fc5919fca0f851cc704.tar.gz |
elm_genlist: fix highlighted items overlap with group item during scrolling and focus when intersect.
Summary: Highlighted genlist item overlap with group item during scrolling and focus when itersect.
Test Plan:
Run elementary_test.
open Genlist Group.
select one item and try to cross the group item via scrolling.
Highlighted item comes over group item.
Reviewers: Hermet, raster, cedric
Reviewed By: cedric
Subscribers: rajeshps, govi, poornima.srinivasan, shilpasingh
Differential Revision: https://phab.enlightenment.org/D2640
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
-rw-r--r-- | src/lib/elm_genlist.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index dbd7c3d9c..17bebca2f 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -1772,7 +1772,15 @@ _item_realize(Elm_Gen_Item *it, focus_raise = edje_object_data_get(VIEW(it), "focusraise"); if ((focus_raise) && (!strcmp(focus_raise, "on"))) - evas_object_raise(VIEW(it)); + { + Elm_Gen_Item *git; + Eina_List *l; + evas_object_raise(VIEW(it)); + EINA_LIST_FOREACH(sd->group_items, l, git) + { + if (git->realized) evas_object_raise(VIEW(git)); + } + } _elm_widget_item_highlight_in_theme(WIDGET(it), EO_OBJ(it)); _elm_widget_highlight_in_theme_update(WIDGET(it)); @@ -2359,10 +2367,6 @@ _elm_genlist_pan_evas_object_smart_calculate(Eo *obj, Elm_Genlist_Pan_Data *psd) evas_object_geometry_get(obj, &ox, &oy, &ow, &oh); evas_output_viewport_get(evas_object_evas_get(obj), &cvx, &cvy, &cvw, &cvh); - EINA_LIST_FOREACH(sd->group_items, l, git) - { - git->item->want_realize = EINA_FALSE; - } if (sd->tree_effect_enabled && (sd->move_effect_mode != ELM_GENLIST_TREE_EFFECT_NONE)) @@ -2428,6 +2432,12 @@ _elm_genlist_pan_evas_object_smart_calculate(Eo *obj, Elm_Genlist_Pan_Data *psd) if (sd->focused_item && !sd->item_loop_enable) _elm_widget_focus_highlight_start(psd->wobj); + EINA_LIST_FOREACH(sd->group_items, l, git) + { + git->item->want_realize = EINA_FALSE; + if (git->realized) evas_object_raise(VIEW(git)); + } + evas_event_thaw(evas_object_evas_get(obj)); evas_event_thaw_eval(evas_object_evas_get(obj)); } @@ -2623,7 +2633,15 @@ _elm_genlist_item_focused(Elm_Object_Item *eo_it) focus_raise = edje_object_data_get(VIEW(it), "focusraise"); if ((focus_raise) && (!strcmp(focus_raise, "on"))) - evas_object_raise(VIEW(it)); + { + Elm_Gen_Item *git; + Eina_List *l; + evas_object_raise(VIEW(it)); + EINA_LIST_FOREACH(sd->group_items, l, git) + { + if (git->realized) evas_object_raise(VIEW(git)); + } + } } evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, eo_it); if (_elm_config->atspi_mode) |