elementary/elm_widget : Focus cannot be stolen when one of parents is invisible or disabled.

This commit is contained in:
WooHyun Jung 2013-05-07 19:15:44 +09:00
parent 9768137b79
commit 8058042b6e
3 changed files with 15 additions and 5 deletions

View File

@ -1340,3 +1340,7 @@
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.

View File

@ -227,6 +227,7 @@ 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:

View File

@ -3198,15 +3198,20 @@ _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;
parent = obj;
parent2 = parent = obj;
for (;; )
{
o = elm_widget_parent_get(parent);
if (!o) break;
o = elm_widget_parent_get(parent2);
if (!o)
{
parent = parent2;
break;
}
if (!evas_object_visible_get(o)) return;
sd = eo_data_scope_get(o, MY_CLASS);
if (sd->disabled || sd->tree_unfocusable) return;
if (sd->focused) break;
parent = o;
if (sd->focused) parent = o;
parent2 = o;
}
if ((!elm_widget_parent_get(parent)) &&
(!elm_widget_parent2_get(parent)))