summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmitesh Singh <amitesh.sh@samsung.com>2015-09-28 13:34:02 +0530
committerAmitesh Singh <amitesh.sh@samsung.com>2015-09-28 13:34:56 +0530
commit284109bc7ea8d3a4051d8221287d28d0a6790122 (patch)
tree21ce1670a2d2e6e9b45369a35af98e5a699c95cc
parentb8616483b5ec958b7ad65d29ed379ee98d03c851 (diff)
downloadelementary-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.c59
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);