summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrince Kr Dubey <prince.dubey@gmail.com>2015-06-22 11:54:53 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-06-22 12:36:57 +0200
commite5bbfc208c4ef4037ccd2fc5919fca0f851cc704 (patch)
tree78a3e9b99e02cf805e349eef440b7e45e65e6c53
parent0ad226a6c4a9ebccdbd861d47b713163379b3d87 (diff)
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.c30
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,
1772 1772
1773 focus_raise = edje_object_data_get(VIEW(it), "focusraise"); 1773 focus_raise = edje_object_data_get(VIEW(it), "focusraise");
1774 if ((focus_raise) && (!strcmp(focus_raise, "on"))) 1774 if ((focus_raise) && (!strcmp(focus_raise, "on")))
1775 evas_object_raise(VIEW(it)); 1775 {
1776 Elm_Gen_Item *git;
1777 Eina_List *l;
1778 evas_object_raise(VIEW(it));
1779 EINA_LIST_FOREACH(sd->group_items, l, git)
1780 {
1781 if (git->realized) evas_object_raise(VIEW(git));
1782 }
1783 }
1776 1784
1777 _elm_widget_item_highlight_in_theme(WIDGET(it), EO_OBJ(it)); 1785 _elm_widget_item_highlight_in_theme(WIDGET(it), EO_OBJ(it));
1778 _elm_widget_highlight_in_theme_update(WIDGET(it)); 1786 _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)
2359 2367
2360 evas_object_geometry_get(obj, &ox, &oy, &ow, &oh); 2368 evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
2361 evas_output_viewport_get(evas_object_evas_get(obj), &cvx, &cvy, &cvw, &cvh); 2369 evas_output_viewport_get(evas_object_evas_get(obj), &cvx, &cvy, &cvw, &cvh);
2362 EINA_LIST_FOREACH(sd->group_items, l, git)
2363 {
2364 git->item->want_realize = EINA_FALSE;
2365 }
2366 2370
2367 if (sd->tree_effect_enabled && 2371 if (sd->tree_effect_enabled &&
2368 (sd->move_effect_mode != ELM_GENLIST_TREE_EFFECT_NONE)) 2372 (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)
2428 if (sd->focused_item && !sd->item_loop_enable) 2432 if (sd->focused_item && !sd->item_loop_enable)
2429 _elm_widget_focus_highlight_start(psd->wobj); 2433 _elm_widget_focus_highlight_start(psd->wobj);
2430 2434
2435 EINA_LIST_FOREACH(sd->group_items, l, git)
2436 {
2437 git->item->want_realize = EINA_FALSE;
2438 if (git->realized) evas_object_raise(VIEW(git));
2439 }
2440
2431 evas_event_thaw(evas_object_evas_get(obj)); 2441 evas_event_thaw(evas_object_evas_get(obj));
2432 evas_event_thaw_eval(evas_object_evas_get(obj)); 2442 evas_event_thaw_eval(evas_object_evas_get(obj));
2433} 2443}
@@ -2623,7 +2633,15 @@ _elm_genlist_item_focused(Elm_Object_Item *eo_it)
2623 2633
2624 focus_raise = edje_object_data_get(VIEW(it), "focusraise"); 2634 focus_raise = edje_object_data_get(VIEW(it), "focusraise");
2625 if ((focus_raise) && (!strcmp(focus_raise, "on"))) 2635 if ((focus_raise) && (!strcmp(focus_raise, "on")))
2626 evas_object_raise(VIEW(it)); 2636 {
2637 Elm_Gen_Item *git;
2638 Eina_List *l;
2639 evas_object_raise(VIEW(it));
2640 EINA_LIST_FOREACH(sd->group_items, l, git)
2641 {
2642 if (git->realized) evas_object_raise(VIEW(git));
2643 }
2644 }
2627 } 2645 }
2628 evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, eo_it); 2646 evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, eo_it);
2629 if (_elm_config->atspi_mode) 2647 if (_elm_config->atspi_mode)