list/genlist/gengrid/toolbar: set focus/unfocus on item when focus is actually set...
authorAmitesh Singh <amitesh.sh@samsung.com>
Tue, 3 Feb 2015 06:47:32 +0000 (15:47 +0900)
committerDaniel Juyung Seo <seojuyung2@gmail.com>
Tue, 3 Feb 2015 06:48:36 +0000 (15:48 +0900)
Summary: @Fix

Reviewers: raster, Hermet, seoz

Reviewed By: seoz

Subscribers: seoz

Differential Revision: https://phab.enlightenment.org/D1918

src/lib/elm_gengrid.c
src/lib/elm_genlist.c
src/lib/elm_list.c
src/lib/elm_toolbar.c

index 9f951f7..f6506f5 100644 (file)
@@ -3411,6 +3411,9 @@ _elm_gengrid_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Gen_Item *it, Eina_Bo
         if (!elm_object_focus_get(obj))
           elm_object_focus_set(obj, EINA_TRUE);
 
+        if (!elm_widget_focus_get(obj))
+          return;
+
         if (eo_it != sd->focused_item)
           {
              if (sd->focused_item)
@@ -3423,7 +3426,11 @@ _elm_gengrid_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Gen_Item *it, Eina_Bo
           }
      }
    else
-     _elm_gengrid_item_unfocused(eo_it);
+     {
+        if (!elm_widget_focus_get(obj))
+          return;
+        _elm_gengrid_item_unfocused(eo_it);
+     }
 }
 
 EOLIAN static Eina_Bool
index e242f82..13cb1ed 100644 (file)
@@ -5711,6 +5711,9 @@ _elm_genlist_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Gen_Item *it, Eina_Bo
         if (!elm_object_focus_get(obj))
           elm_object_focus_set(obj, EINA_TRUE);
 
+        if (!elm_widget_focus_get(obj))
+          return;
+
         if (eo_it != sd->focused_item)
           {
              if (sd->focused_item)
@@ -5723,7 +5726,11 @@ _elm_genlist_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Gen_Item *it, Eina_Bo
           }
      }
    else
-     _elm_genlist_item_unfocused(eo_it);
+     {
+        if (!elm_widget_focus_get(obj))
+          return;
+        _elm_genlist_item_unfocused(eo_it);
+     }
 }
 
 EOLIAN static Eina_Bool
index f9b405e..709e00e 100644 (file)
@@ -2121,6 +2121,10 @@ _elm_list_item_elm_widget_item_focus_set(Eo *eo_it, Elm_List_Item_Data *it, Eina
         sd->last_focused_item = eo_it;
         if (!elm_object_focus_get(obj))
           elm_object_focus_set(obj, EINA_TRUE);
+
+        if (!elm_widget_focus_get(obj))
+          return;
+
         if (eo_it != sd->focused_item)
           {
              if (sd->focused_item)
@@ -2130,6 +2134,8 @@ _elm_list_item_elm_widget_item_focus_set(Eo *eo_it, Elm_List_Item_Data *it, Eina
      }
    else
      {
+        if (!elm_widget_focus_get(obj))
+          return;
         if (eo_it)
           _elm_list_item_unfocused(eo_it);
      }
index 94320d3..6508193 100644 (file)
@@ -827,6 +827,10 @@ _elm_toolbar_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Toolbar_Item_Data *it
         sd->last_focused_item = eo_it;
         if (!elm_object_focus_get(obj))
           elm_object_focus_set(obj, EINA_TRUE);
+
+        if (!elm_widget_focus_get(obj))
+          return;
+
         if (eo_it != sd->focused_item)
           {
              if (sd->focused_item)
@@ -836,6 +840,8 @@ _elm_toolbar_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Toolbar_Item_Data *it
      }
    else
      {
+        if (!elm_widget_focus_get(obj))
+          return;
         if (eo_it)
           _elm_toolbar_item_unfocused(eo_it);
      }