summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWooHyun Jung <wh0705.jung@samsung.com>2013-05-08 21:08:44 +0900
committerWooHyun Jung <wh0705.jung@samsung.com>2013-05-08 21:08:44 +0900
commit2b54dcf43869e60b14116666a4c63e7324d311fc (patch)
tree0514a8fcc484a00da88da0c77b375ec0e6cb79b0
parent267670fc8a9f4cd49e43db8751bd2b2e2c398a24 (diff)
downloadelementary-2b54dcf43869e60b14116666a4c63e7324d311fc.tar.gz
Revert commit:3654d6e28137cfaf72444d5c5e26b651fabac89e. When stealing focus from another widget, Checking visibility of parent widget is wrong :(
-rw-r--r--ChangeLog4
-rw-r--r--NEWS1
-rw-r--r--src/lib/elm_widget.c15
3 files changed, 5 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 1958ff697..28bf77b41 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1340,7 +1340,3 @@
2013-05-06 WooHyun Jung
* Add elm_entry smart callback - "text,set,done".
-
-2013-05-07 WooHyun Jung
-
- * Focus cannot be stolen when one of parents is invisible or disabled.
diff --git a/NEWS b/NEWS
index d86ccbf66..ebb3f6ae9 100644
--- a/NEWS
+++ b/NEWS
@@ -227,7 +227,6 @@ Fixes:
* Fix gengrid does not work under the accessibility.
* Fix do not append NULL to genlist focus list.
* Fix elm_clock_first_interval_set writes wrong value.
- * Focus cannot be stolen when one of parents is invisible or disabled.
Removals:
diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c
index c9414978d..ce22e9406 100644
--- a/src/lib/elm_widget.c
+++ b/src/lib/elm_widget.c
@@ -3195,20 +3195,15 @@ _elm_widget_focus_steal(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
if (sd->disabled) return;
if (!sd->can_focus) return;
if (sd->tree_unfocusable) return;
- parent2 = parent = obj;
+ parent = obj;
for (;; )
{
- o = elm_widget_parent_get(parent2);
- if (!o)
- {
- parent = parent2;
- break;
- }
- if (!evas_object_visible_get(o)) return;
+ o = elm_widget_parent_get(parent);
+ if (!o) break;
sd = eo_data_scope_get(o, MY_CLASS);
if (sd->disabled || sd->tree_unfocusable) return;
- if (sd->focused) parent = o;
- parent2 = o;
+ if (sd->focused) break;
+ parent = o;
}
if ((!elm_widget_parent_get(parent)) &&
(!elm_widget_parent2_get(parent)))