From: Amitesh Singh Date: Tue, 3 Feb 2015 06:47:32 +0000 (+0900) Subject: list/genlist/gengrid/toolbar: set focus/unfocus on item when focus is actually set... X-Git-Tag: v1.13.0-beta3~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a3e0ebf41f2723b5516cce760d46592940bab53b;p=platform%2Fupstream%2Felementary.git 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 --- 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); }