list/genlist/gengrid: Internal refactoring of item_focused/unfocused

codes.

- Added a check for focus highlight enable status before calling focus
signal to edje.
- Used obj instead of WIDGET(it) because that is used many times.
This commit is contained in:
Daniel Juyung Seo 2014-03-23 23:29:16 +09:00
parent 26f4d3fcd9
commit 7f0f50fbc6
3 changed files with 26 additions and 22 deletions

View File

@ -1505,7 +1505,7 @@ static void
_elm_gengrid_item_focused(Elm_Gen_Item *it)
{
Evas_Object *obj = WIDGET(it);
Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
ELM_GENGRID_DATA_GET(obj, sd);
const char *focus_raise;
if (it->generation < sd->generation)
@ -1530,14 +1530,14 @@ _elm_gengrid_item_focused(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));
evas_object_smart_callback_call
(WIDGET(it), SIG_ITEM_FOCUSED, it);
evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, it);
}
static void
_elm_gengrid_item_unfocused(Elm_Gen_Item *it)
{
Elm_Gengrid_Smart_Data *sd = GG_IT(it)->wsd;
Evas_Object *obj = WIDGET(it);
ELM_GENGRID_DATA_GET(obj, sd);
if (it->generation < sd->generation)
return;
@ -1552,12 +1552,14 @@ _elm_gengrid_item_unfocused(Elm_Gen_Item *it)
sd->prev_focused_item = (Elm_Object_Item *)it;
edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
if (elm_widget_focus_highlight_enabled_get(obj))
{
edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
}
sd->focused_item = NULL;
evas_object_smart_callback_call
(WIDGET(it), SIG_ITEM_UNFOCUSED, it);
evas_object_smart_callback_call(obj, SIG_ITEM_UNFOCUSED, it);
}
/* NOTE: this code will be used later when the item selection on key press

View File

@ -2440,7 +2440,7 @@ static void
_elm_genlist_item_focused(Elm_Gen_Item *it)
{
Evas_Object *obj = WIDGET(it);
Elm_Genlist_Smart_Data *sd = GL_IT(it)->wsd;
ELM_GENLIST_DATA_GET(obj, sd);
const char *focus_raise;
if (it->generation < sd->generation)
@ -2464,14 +2464,14 @@ _elm_genlist_item_focused(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));
evas_object_smart_callback_call
(WIDGET(it), SIG_ITEM_FOCUSED, it);
evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, it);
}
static void
_elm_genlist_item_unfocused(Elm_Gen_Item *it)
{
Elm_Genlist_Smart_Data *sd = GL_IT(it)->wsd;
Evas_Object *obj = WIDGET(it);
ELM_GENLIST_DATA_GET(obj, sd);
if (it->generation < sd->generation)
return;
@ -2486,12 +2486,12 @@ _elm_genlist_item_unfocused(Elm_Gen_Item *it)
sd->prev_focused_item = (Elm_Object_Item *)it;
edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
if (elm_widget_focus_highlight_enabled_get(obj))
edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
sd->focused_item = NULL;
evas_object_smart_callback_call
(WIDGET(it), SIG_ITEM_UNFOCUSED, it);
evas_object_smart_callback_call(obj, SIG_ITEM_UNFOCUSED, it);
}
/* NOTE: this code will be used later when the item selection on key press

View File

@ -1036,7 +1036,8 @@ _elm_list_item_focused(Elm_List_Item *it)
static void
_elm_list_item_unfocused(Elm_List_Item *it)
{
ELM_LIST_DATA_GET(WIDGET(it), sd);
Evas_Object *obj = WIDGET(it);
ELM_LIST_DATA_GET(obj, sd);
if ((!sd) || (!sd->focused_item) ||
(it != (Elm_List_Item *)sd->focused_item))
@ -1046,13 +1047,14 @@ _elm_list_item_unfocused(Elm_List_Item *it)
if (sd->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
return;
if (elm_widget_focus_highlight_enabled_get(WIDGET(sd->focused_item)))
edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
if (elm_widget_focus_highlight_enabled_get(obj))
{
edje_object_signal_emit
(VIEW(sd->focused_item), "elm,state,unfocused", "elm");
}
sd->focused_item = NULL;
evas_object_smart_callback_call
(WIDGET(it), SIG_ITEM_UNFOCUSED, it);
evas_object_smart_callback_call(obj, SIG_ITEM_UNFOCUSED, it);
}
/*