diff options
author | Amitesh Singh <amitesh.sh@samsung.com> | 2015-09-28 13:34:02 +0530 |
---|---|---|
committer | Amitesh Singh <amitesh.sh@samsung.com> | 2015-09-28 13:34:56 +0530 |
commit | 284109bc7ea8d3a4051d8221287d28d0a6790122 (patch) | |
tree | 21ce1670a2d2e6e9b45369a35af98e5a699c95cc | |
parent | b8616483b5ec958b7ad65d29ed379ee98d03c851 (diff) | |
download | elementary-284109bc7ea8d3a4051d8221287d28d0a6790122.tar.gz |
genlist: refractor item focus update code
Add duplicate code into a new local function _elm_genlist_item_focus_update
-rw-r--r-- | src/lib/elm_genlist.c | 59 |
1 files changed, 26 insertions, 33 deletions
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 92e47058e..a0d5cd7b2 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -1689,6 +1689,30 @@ _access_widget_item_register(Elm_Gen_Item *it) } static void +_elm_genlist_item_focus_update(Elm_Gen_Item *it) +{ + const char *focus_raise; + Evas_Object *obj = WIDGET(it); + ELM_GENLIST_DATA_GET(obj, sd); + + if (elm_widget_focus_highlight_enabled_get(obj)) + edje_object_signal_emit(VIEW(it), SIGNAL_FOCUSED, "elm"); + + focus_raise = edje_object_data_get(VIEW(it), "focusraise"); + if ((focus_raise) && (!strcmp(focus_raise, "on"))) + { + 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)); + } + } +} + +static void _item_realize(Elm_Gen_Item *it, int in, Eina_Bool calc) @@ -1771,22 +1795,7 @@ _item_realize(Elm_Gen_Item *it, if (EO_OBJ(it) == sd->focused_item) { - const char *focus_raise; - if (elm_widget_focus_highlight_enabled_get(WIDGET(it)) || _elm_config->win_auto_focus_enable) - edje_object_signal_emit(VIEW(it), SIGNAL_FOCUSED, "elm"); - - focus_raise = edje_object_data_get(VIEW(it), "focusraise"); - if ((focus_raise) && (!strcmp(focus_raise, "on"))) - { - 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_genlist_item_focus_update(it); _elm_widget_item_highlight_in_theme(WIDGET(it), EO_OBJ(it)); _elm_widget_highlight_in_theme_update(WIDGET(it)); _elm_widget_focus_highlight_start(WIDGET(it)); @@ -2617,7 +2626,6 @@ _elm_genlist_item_focused(Elm_Object_Item *eo_it) ELM_GENLIST_ITEM_DATA_GET(eo_it, it); Evas_Object *obj = WIDGET(it); ELM_GENLIST_DATA_GET(obj, sd); - const char *focus_raise; Eina_Bool tmp; if (_is_no_select(it) || @@ -2642,22 +2650,7 @@ _elm_genlist_item_focused(Elm_Object_Item *eo_it) sd->focused_item = eo_it; if (it->realized) - { - if (elm_widget_focus_highlight_enabled_get(obj)) - edje_object_signal_emit(VIEW(it), SIGNAL_FOCUSED, "elm"); - - focus_raise = edje_object_data_get(VIEW(it), "focusraise"); - if ((focus_raise) && (!strcmp(focus_raise, "on"))) - { - 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_genlist_item_focus_update(it); eo_do(obj, eo_event_callback_call(ELM_GENLIST_EVENT_ITEM_FOCUSED, eo_it)); if (_elm_config->atspi_mode) elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_FOCUSED, EINA_TRUE); |