From a497b4d225642f5a1b0cc57fd0d489eeb493d2d0 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Mon, 1 Feb 2016 11:27:56 +0900 Subject: [PATCH] genlist/gengrid: Fix focus hilight error The error was due to an invalid cast between real data and Eo ptr. Thanks @DaveMDS for reporting. Fixes T3122 @fix --- legacy/elementary/src/lib/elm_gengrid.c | 2 +- legacy/elementary/src/lib/elm_genlist.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/legacy/elementary/src/lib/elm_gengrid.c b/legacy/elementary/src/lib/elm_gengrid.c index 81b1ce5031..034236a7df 100644 --- a/legacy/elementary/src/lib/elm_gengrid.c +++ b/legacy/elementary/src/lib/elm_gengrid.c @@ -209,7 +209,7 @@ _item_cache_add(Elm_Gen_Item *it) edje_object_signal_emit(itc->base_view, "elm,state,unselected", "elm"); if (eo_do_ret(EO_OBJ(it), tmp, elm_wdg_item_disabled_get())) edje_object_signal_emit(itc->base_view, "elm,state,enabled", "elm"); - if (it == (Elm_Gen_Item *)sd->focused_item && + if ((EO_OBJ(it) == sd->focused_item) && (elm_widget_focus_highlight_enabled_get(obj) || _elm_config->win_auto_focus_enable)) edje_object_signal_emit(itc->base_view, "elm,state,unfocused", "elm"); diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index 2f57dead11..538e954919 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -1274,6 +1274,8 @@ static void _elm_genlist_item_state_update(Elm_Gen_Item *it) { Eina_Bool tmp; + ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd); + if (it->selected) { edje_object_signal_emit(VIEW(it), SIGNAL_SELECTED, "elm"); @@ -1295,7 +1297,7 @@ _elm_genlist_item_state_update(Elm_Gen_Item *it) edje_object_signal_emit (it->deco_all_view, SIGNAL_EXPANDED, "elm"); } - if (it == (Elm_Gen_Item *)GL_IT(it)->wsd->focused_item && + if ((EO_OBJ(it) == sd->focused_item) && (elm_widget_focus_highlight_enabled_get(WIDGET(it)) || _elm_config->win_auto_focus_enable)) edje_object_signal_emit(VIEW(it), SIGNAL_FOCUSED, "elm"); } @@ -1555,7 +1557,7 @@ _item_cache_add(Elm_Gen_Item *it) edje_object_signal_emit(itc->base_view, SIGNAL_UNSELECTED, "elm"); if (eo_do_ret(EO_OBJ(it), tmp, elm_wdg_item_disabled_get())) edje_object_signal_emit(itc->base_view, SIGNAL_ENABLED, "elm"); - if (it == (Elm_Gen_Item *)sd->focused_item && + if ((EO_OBJ(it) == sd->focused_item) && (elm_widget_focus_highlight_enabled_get(obj) || _elm_config->win_auto_focus_enable)) edje_object_signal_emit(itc->base_view, SIGNAL_UNFOCUSED, "elm");