aboutsummaryrefslogtreecommitdiffstats
path: root/legacy/elementary/src/lib/elm_win.c
diff options
context:
space:
mode:
authorShinwoo Kim <cinoo.kim@samsung.com>2013-08-06 14:00:50 +0900
committerShinwoo Kim <cinoo.kim@samsung.com>2013-08-06 14:00:50 +0900
commitdec4d56d951c6a29cb81f519128da92e96d34315 (patch)
treed73652ab20f25070cade3aecad84563d7eab6fac /legacy/elementary/src/lib/elm_win.c
parentfix up elm thumb docs/examples. (diff)
downloadefl-dec4d56d951c6a29cb81f519128da92e96d34315.tar.gz
[access] call smart_access(); of the object which does not have parent object
Diffstat (limited to 'legacy/elementary/src/lib/elm_win.c')
-rw-r--r--legacy/elementary/src/lib/elm_win.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c
index ad76c08ecf..cf5344b0bd 100644
--- a/legacy/elementary/src/lib/elm_win.c
+++ b/legacy/elementary/src/lib/elm_win.c
@@ -1919,10 +1919,33 @@ _elm_win_access(Eina_Bool is_access)
Evas *evas;
const Eina_List *l;
Evas_Object *obj;
+ Evas_Object *fobj;
EINA_LIST_FOREACH(_elm_win_list, l, obj)
{
elm_widget_access(obj, is_access);
+
+ /* floating orphan object. if there are A, B, C objects and user does
+ as below, then there would be floating orphan objects.
+
+ 1. elm_object_content_set(layout, A);
+ 2. elm_object_content_set(layout, B);
+ 3. elm_object_content_set(layout, C);
+
+ now, the object A and B are floating orphan objects */
+
+ fobj = obj;
+ for (;;)
+ {
+ fobj = evas_object_below_get(fobj);
+ if (!fobj) break;
+
+ if (elm_widget_is(fobj) && !elm_widget_parent_get(fobj))
+ {
+ elm_widget_access(fobj, is_access);
+ }
+ }
+
if (!is_access)
{
evas = evas_object_evas_get(obj);