seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=434f507e72acbedd932e5405f965c7e8e082bd19
commit 434f507e72acbedd932e5405f965c7e8e082bd19 Author: woochan lee <[email protected]> Date: Thu Dec 11 00:00:21 2014 +0900 elm_notify: added the notify's edje of popup smart member Summary: Summary: after popup layout refactoring, the popup object cant get evas event. when popup using notify object block layout object will be covered with edje object. it breaks evas smart member relationship. Test Plan: Test Plan: 1. added popup object. 2. key down event callback add for popup object. 3. run the elementary_test. 4. input some key on popup and check whether the registered function is executed or not. Reviewers: eunue, Hermet, seoz Differential Revision: https://phab.enlightenment.org/D1706 --- src/lib/elm_notify.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/lib/elm_notify.c b/src/lib/elm_notify.c index 92bff96..c48d41b 100644 --- a/src/lib/elm_notify.c +++ b/src/lib/elm_notify.c @@ -224,17 +224,6 @@ _block_area_clicked_cb(void *data, evas_object_smart_callback_call(data, SIG_BLOCK_CLICKED, NULL); } -static void -_restack_cb(void *data EINA_UNUSED, - Evas *e EINA_UNUSED, - Evas_Object *obj, - void *event_info EINA_UNUSED) -{ - ELM_NOTIFY_DATA_GET(obj, sd); - - evas_object_layer_set(sd->notify, evas_object_layer_get(obj)); -} - EOLIAN static void _elm_notify_evas_object_smart_resize(Eo *obj, Elm_Notify_Data *sd EINA_UNUSED, Evas_Coord w, Evas_Coord h) { @@ -449,9 +438,8 @@ _elm_notify_evas_object_smart_add(Eo *obj, Elm_Notify_Data *priv) priv->allow_events = EINA_TRUE; priv->notify = edje_object_add(evas_object_evas_get(obj)); + evas_object_smart_member_add(priv->notify, obj); - evas_object_event_callback_add - (obj, EVAS_CALLBACK_RESTACK, _restack_cb, obj); edje_object_signal_callback_add (priv->notify, "elm,action,hide,finished", "elm", _hide_finished_cb, obj); @@ -656,6 +644,7 @@ _elm_notify_allow_events_set(Eo *obj, Elm_Notify_Data *sd, Eina_Bool allow) sd->block_events = elm_layout_add(obj); _block_events_theme_apply(obj); elm_widget_resize_object_set(obj, sd->block_events, EINA_TRUE); + evas_object_stack_above(sd->notify, sd->block_events); elm_layout_signal_callback_add (sd->block_events, "elm,action,click", "elm", _block_area_clicked_cb, obj); --
