[access][win] use return value of elm_widget_focus_list_next_get(); to check the...
authorShinwoo Kim <cinoo.kim@samsung.com>
Tue, 11 Jun 2013 09:36:20 +0000 (18:36 +0900)
committerSungho Kwak <sungho1.kwak@samsung.com>
Thu, 20 Jun 2013 12:29:31 +0000 (21:29 +0900)
Change-Id: I3aacd6ce02bed9230b3c1313cedfb6162d52a87f

src/lib/elm_win.c

index 6340f80..730b97f 100644 (file)
@@ -1095,6 +1095,7 @@ _elm_win_smart_focus_next(const Evas_Object *obj,
                           Elm_Focus_Direction dir,
                           Evas_Object **next)
 {
+   Eina_Bool ret;
    ELM_WIN_DATA_GET(obj, sd);
 
    const Eina_List *items;
@@ -1111,7 +1112,12 @@ _elm_win_smart_focus_next(const Evas_Object *obj,
           }
         list_data_get = eina_list_data_get;
 
-        elm_widget_focus_list_next_get(obj, items, list_data_get, dir, next);
+        ret = elm_widget_focus_list_next_get(obj, items, list_data_get, dir, next);
+
+        /* the result is used on the auto read mode. it would meet end of the
+           widget tree if it return EINA_FALSE. stop the auto read if ret is EINA_FALSE */
+        if (_elm_config->access_mode && *next)
+          return ret;
 
         if (*next)
           return EINA_TRUE;