From 66df4d6c613cf0f922b42308b6f427de997a3579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=A7=80=ED=9B=88?= Date: Wed, 10 Feb 2010 15:12:35 +0000 Subject: [PATCH] =?UTF-8?q?From:=20=EA=B9=80=EC=A7=80=ED=9B=88=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is edje_entry.c patch for supporting to switch the focus of ecore_imf when the other window is clicked. SVN revision: 46050 --- legacy/edje/src/lib/edje_entry.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/legacy/edje/src/lib/edje_entry.c b/legacy/edje/src/lib/edje_entry.c index 05c9cc3bfa..d07f1bff3a 100644 --- a/legacy/edje/src/lib/edje_entry.c +++ b/legacy/edje/src/lib/edje_entry.c @@ -1508,6 +1508,26 @@ _edje_part_mouse_move_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS } } +static void +_evas_focus_in_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Edje *ed = (Edje *)data; + + if (evas_focus_get(e) == ed->obj) { + _edje_focus_in_cb(data, NULL, NULL, NULL); + } +} + +static void +_evas_focus_out_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Edje *ed = (Edje *)data; + + if (evas_focus_get(e) == ed->obj) { + _edje_focus_out_cb(data, NULL, NULL, NULL); + } +} + /***************************************************************/ void _edje_entry_init(Edje *ed) @@ -1516,6 +1536,8 @@ _edje_entry_init(Edje *ed) evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb, ed); evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb, ed); evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb, ed); + evas_event_callback_add(ed->evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed); + evas_event_callback_add(ed->evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed); } void @@ -1525,6 +1547,8 @@ _edje_entry_shutdown(Edje *ed) evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb); evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb); evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb); + evas_event_callback_del_full(ed->evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed); + evas_event_callback_del_full(ed->evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed); } void