cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=86008fa411378721ae3d772e778f0acfe477b057

commit 86008fa411378721ae3d772e778f0acfe477b057
Author: JinYong Park <[email protected]>
Date:   Wed Apr 12 14:25:51 2017 -0700

    notify: fix hide animation logic for popup
    
    Summary:
    When popup is timeout, notify call hide func, and send time out event to 
popup.
    After popup receiving time out event, popup hide object again,
    so hide animation doesn't show.
    And notify hide function doesn't send hide signal to block events part,
    (but dismiss function send it)
    So add that signal.
    
    Test Plan:
     1. elementary_test -to popup
     2. click first item, "popup+center+text"
     3. compare time out event before this patch and after.
    
    @fix
    
    Reviewers: herb, singh.amitesh, Hermet, cedric, raster, jpeg
    
    Differential Revision: https://phab.enlightenment.org/D4780
    
    Signed-off-by: Cedric BAIL <[email protected]>
---
 src/bin/elementary/test_popup.c | 2 +-
 src/lib/elementary/elm_notify.c | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/bin/elementary/test_popup.c b/src/bin/elementary/test_popup.c
index dc1274e..7de2588 100644
--- a/src/bin/elementary/test_popup.c
+++ b/src/bin/elementary/test_popup.c
@@ -134,7 +134,7 @@ _popup_center_text_cb(void *data, Evas_Object *obj 
EINA_UNUSED,
    elm_object_text_set(popup, "This Popup has content area and "
                        "timeout value is 3 seconds");
    elm_popup_timeout_set(popup, 3.0);
-   evas_object_smart_callback_add(popup, "timeout", _response_cb, popup);
+   evas_object_smart_callback_add(popup, "dismissed", _response_cb, popup);
    evas_object_event_callback_add(popup, EVAS_CALLBACK_KEY_DOWN,
                                   _popup_key_down_cb, NULL);
 
diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c
index 6bb58be..4ef5514 100644
--- a/src/lib/elementary/elm_notify.c
+++ b/src/lib/elementary/elm_notify.c
@@ -270,6 +270,7 @@ _timer_cb(void *data)
    if (!evas_object_visible_get(obj)) goto end;
 
    evas_object_hide(obj);
+   sd->in_timeout = EINA_TRUE;
    efl_event_callback_legacy_call(obj, ELM_NOTIFY_EVENT_TIMEOUT, NULL);
 
 end:
@@ -312,7 +313,10 @@ _elm_notify_hide(Eo *obj EINA_UNUSED, Elm_Notify_Data *sd)
    if (eina_streq(hide_signal, "on"))
      {
         if (!sd->in_timeout)
-          edje_object_signal_emit(sd->notify, "elm,state,hide", "elm");
+          {
+             elm_layout_signal_emit(sd->block_events, "elm,state,hide", "elm");
+             edje_object_signal_emit(sd->notify, "elm,state,hide", "elm");
+          }
      }
    else //for backport supporting: edc without emitting hide finished signal
      {

-- 


Reply via email to