diff options
author | Minkyu Kang <mk7.kang@samsung.com> | 2016-01-20 17:15:45 +0900 |
---|---|---|
committer | Hermet Park <hermet@hermet.pe.kr> | 2016-01-20 17:15:45 +0900 |
commit | 163d1c8b88fc613a4700cecc93f83f7136da0873 (patch) | |
tree | efd7348ea9f5eb4c4607ac64cc29894c4042167b | |
parent | 89d072b8f2cb6b240b2dca1ace32594442a2df8e (diff) | |
download | elementary-163d1c8b88fc613a4700cecc93f83f7136da0873.tar.gz |
elm_widget: use internal function for clearing the focus
Summary:
This patch will remove duplicate logic
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Reviewers: seoz, Hermet, cedric
Subscribers: seoz
Differential Revision: https://phab.enlightenment.org/D3573
-rw-r--r-- | src/lib/elm_widget.c | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 11d4ee091..b779994dd 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -2914,10 +2914,9 @@ _elm_widget_parent_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd) return sd->parent_obj; } -EOLIAN static void -_elm_widget_focused_object_clear(Eo *obj, Elm_Widget_Smart_Data *sd) +static void +_focused_object_clear(Elm_Widget_Smart_Data *sd) { - if (!sd->focused) return; if (sd->resize_obj && elm_widget_is(sd->resize_obj) && elm_widget_focus_get(sd->resize_obj)) { @@ -2936,6 +2935,13 @@ _elm_widget_focused_object_clear(Eo *obj, Elm_Widget_Smart_Data *sd) } } } +} + +EOLIAN static void +_elm_widget_focused_object_clear(Eo *obj, Elm_Widget_Smart_Data *sd) +{ + if (!sd->focused) return; + _focused_object_clear(sd); sd->focused = EINA_FALSE; eo_do(obj, elm_obj_widget_on_focus(NULL)); } @@ -2968,27 +2974,7 @@ _elm_widget_focus_steal(Eo *obj, Elm_Widget_Smart_Data *sd, Elm_Object_Item *ite if (!parent2) parent2 = elm_widget_parent2_get(parent); parent = parent2; sd = eo_data_scope_get(parent, MY_CLASS); - if (sd) - { - if (sd->resize_obj && elm_widget_is(sd->resize_obj) && - elm_widget_focus_get(sd->resize_obj)) - { - eo_do(sd->resize_obj, elm_obj_widget_focused_object_clear()); - } - else - { - const Eina_List *l; - Evas_Object *child; - EINA_LIST_FOREACH(sd->subobjs, l, child) - { - if (_elm_widget_is(child) && elm_widget_focus_get(child)) - { - eo_do(child, elm_obj_widget_focused_object_clear()); - break; - } - } - } - } + if (sd) _focused_object_clear(sd); } _parent_focus(obj, item); elm_widget_focus_region_show(obj); |