woohyun pushed a commit to branch master.

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

commit 9e7e4777de25ad29b1998a50ce2933e1ad77f286
Author: WooHyun Jung <wh0705.j...@samsung.com>
Date:   Fri Jan 3 20:02:30 2014 +0900

    widget: Fix a bug in elm_widget_newest_focus_order_get.
    
    When elm_widget_newest_focus_order_get is called with can_focus_only,
    only focusable objects should be the candidates for newest focused object.
    But there are cases that unfocusable object add +1 to newest_focus_order.
---
 src/lib/elm_widget.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c
index b1c5df5..708762a 100644
--- a/src/lib/elm_widget.c
+++ b/src/lib/elm_widget.c
@@ -4762,8 +4762,11 @@ _elm_widget_newest_focus_order_get(Eo *obj, void *_pd, 
va_list *list)
    best = NULL;
    if (*newest_focus_order < sd->focus_order)
      {
-        *newest_focus_order = sd->focus_order;
-        best = obj;
+        if (!can_focus_only || elm_widget_can_focus_get(obj))
+          {
+             *newest_focus_order = sd->focus_order;
+             best = obj;
+          }
      }
    EINA_LIST_FOREACH(sd->subobjs, l, child)
      {
@@ -4772,11 +4775,6 @@ _elm_widget_newest_focus_order_get(Eo *obj, void *_pd, 
va_list *list)
         if (!cur) continue;
         best = cur;
      }
-   if (can_focus_only)
-     {
-        if ((!best) || (!elm_widget_can_focus_get(best)))
-          return;
-     }
    *ret = best;
    return;
 }

-- 


Reply via email to