From: WooHyun Jung <wh0705.jung@samsung.com>

Subject: [E-devel] [Patch] Focus issue in elm_widget.c

I've checked there were some focus problems when an object is hidden. 

So I made patch for that ~ 



SVN revision: 57898
This commit is contained in:
WooHyun Jung 2011-03-19 15:13:14 +00:00 committed by Carsten Haitzler
parent d5fc6b467b
commit 52c6c2171d
1 changed files with 18 additions and 2 deletions

View File

@ -177,6 +177,12 @@ _sub_obj_del(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info
evas_object_smart_callback_call(sd->obj, "sub-object-del", obj);
}
static void
_sub_obj_hide(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
{
_if_focused_revert(obj, EINA_TRUE);
}
static void
_sub_obj_mouse_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
{
@ -735,7 +741,9 @@ elm_widget_sub_object_add(Evas_Object *obj, Evas_Object *sobj)
sd->subobjs = eina_list_append(sd->subobjs, sobj);
evas_object_data_set(sobj, "elm-parent", obj);
evas_object_event_callback_add(sobj, EVAS_CALLBACK_DEL, _sub_obj_del, sd);
evas_object_event_callback_add(sobj, EVAS_CALLBACK_DEL, _sub_obj_del, sd);
if (_elm_widget_is(sobj))
evas_object_event_callback_add(sobj, EVAS_CALLBACK_HIDE, _sub_obj_hide, sd);
evas_object_smart_callback_call(obj, "sub-object-add", sobj);
scale = elm_widget_scale_get(sobj);
th = elm_widget_theme_get(sobj);
@ -788,6 +796,9 @@ elm_widget_sub_object_del(Evas_Object *obj, Evas_Object *sobj)
sd->subobjs = eina_list_remove(sd->subobjs, sobj);
evas_object_event_callback_del_full(sobj, EVAS_CALLBACK_DEL,
_sub_obj_del, sd);
if (_elm_widget_is(sobj))
evas_object_event_callback_del_full(sobj, EVAS_CALLBACK_HIDE,
_sub_obj_hide, sd);
evas_object_smart_callback_call(obj, "sub-object-del", sobj);
}
@ -804,6 +815,8 @@ elm_widget_resize_object_set(Evas_Object *obj, Evas_Object *sobj)
{
Smart_Data *sd2 = evas_object_smart_data_get(sd->resize_obj);
if (sd2) sd2->parent_obj = NULL;
evas_object_event_callback_del_full(sd->resize_obj, EVAS_CALLBACK_HIDE,
_sub_obj_hide, sd);
}
evas_object_event_callback_del_full(sd->resize_obj, EVAS_CALLBACK_DEL,
_sub_obj_del, sd);
@ -823,6 +836,8 @@ elm_widget_resize_object_set(Evas_Object *obj, Evas_Object *sobj)
{
Smart_Data *sd2 = evas_object_smart_data_get(sobj);
if (sd2) sd2->parent_obj = NULL;
evas_object_event_callback_del_full(sobj, EVAS_CALLBACK_HIDE,
_sub_obj_hide, sd);
}
evas_object_event_callback_del_full(sobj, EVAS_CALLBACK_DEL,
_sub_obj_del, sd);
@ -842,6 +857,8 @@ elm_widget_resize_object_set(Evas_Object *obj, Evas_Object *sobj)
{
Smart_Data *sd2 = evas_object_smart_data_get(sd->resize_obj);
if (sd2) sd2->parent_obj = obj;
evas_object_event_callback_add(sobj, EVAS_CALLBACK_HIDE,
_sub_obj_hide, sd);
}
evas_object_clip_set(sobj, evas_object_clip_get(obj));
evas_object_smart_member_add(sobj, obj);
@ -2661,7 +2678,6 @@ _smart_hide(Evas_Object *obj)
if (evas_object_data_get(o, "_elm_leaveme")) continue;
evas_object_hide(o);
}
_if_focused_revert(obj, EINA_TRUE);
}
static void