seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=90e094d5d69c32ad23acb995bceff41123cd8dcb

commit 90e094d5d69c32ad23acb995bceff41123cd8dcb
Author: Daniel Juyung Seo <[email protected]>
Date:   Sun Mar 23 23:29:16 2014 +0900

    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.
---
 src/lib/elm_gengrid.c | 18 ++++++++++--------
 src/lib/elm_genlist.c | 16 ++++++++--------
 src/lib/elm_list.c    | 14 ++++++++------
 3 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index 3895be1..deffc73 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -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
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index 4158f59..567c586 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -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
diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index a89b154..447ce9d 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -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);
 }
 
 /*

-- 


Reply via email to