seoz pushed a commit to branch master.

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

commit a3e0ebf41f2723b5516cce760d46592940bab53b
Author: Amitesh Singh <amitesh...@samsung.com>
Date:   Tue Feb 3 15:47:32 2015 +0900

    list/genlist/gengrid/toolbar: set focus/unfocus on item when focus is 
actually set on widget.
    
    Summary: @Fix
    
    Reviewers: raster, Hermet, seoz
    
    Reviewed By: seoz
    
    Subscribers: seoz
    
    Differential Revision: https://phab.enlightenment.org/D1918
---
 src/lib/elm_gengrid.c | 9 ++++++++-
 src/lib/elm_genlist.c | 9 ++++++++-
 src/lib/elm_list.c    | 6 ++++++
 src/lib/elm_toolbar.c | 6 ++++++
 4 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index 9f951f7..f6506f5 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -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
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index e242f82..13cb1ed 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -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
diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index f9b405e..709e00e 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -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);
      }
diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c
index 94320d3..6508193 100644
--- a/src/lib/elm_toolbar.c
+++ b/src/lib/elm_toolbar.c
@@ -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);
      }

-- 


Reply via email to