discomfitor pushed a commit to branch master.

commit 0aa86c902e40eb217dd5c3702f605ecb44f84c47
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Jun 12 09:38:46 2013 +0100

    fix pager popup hide/delete animation
---
 src/modules/pager/e_mod_main.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c
index e2b0cde..c2056d0 100644
--- a/src/modules/pager/e_mod_main.c
+++ b/src/modules/pager/e_mod_main.c
@@ -756,6 +756,14 @@ _pager_desk_window_find(Pager_Desk *pd, E_Border *border)
    return NULL;
 }
 
+static void
+_pager_popup_cb_del(void *obj)
+{
+   Pager_Popup *pp = e_object_data_get(obj);
+   _pager_free(pp->pager);
+   free(pp);
+}
+
 static Pager_Popup *
 _pager_popup_new(E_Zone *zone, int keyaction)
 {
@@ -777,6 +785,7 @@ _pager_popup_new(E_Zone *zone, int keyaction)
      }
 
    pp->pager = _pager_new(pp->popup->evas, zone, NULL);
+   
    pp->pager->popup = pp;
    pp->urgent = 0;
 
@@ -807,16 +816,13 @@ _pager_popup_new(E_Zone *zone, int keyaction)
    evas_object_move(pp->o_bg, 0, 0);
    evas_object_resize(pp->o_bg, w, h);
    e_popup_content_set(pp->popup, pp->o_bg);
-   //e_popup_ignore_events_set(pp->popup, 1);
    e_zone_useful_geometry_get(zone, &zx, &zy, &zw, &zh);
    zx -= zone->x;
    zy -= zone->y;
    e_popup_move_resize(pp->popup,
                        zx + ((zw - w) / 2), zy + ((zh - h) / 2), w, h);
-   /* FIXME: COMP */
-   //e_bindings_mouse_grab(E_BINDING_CONTEXT_POPUP, pp->popup->evas_win);
-   //e_bindings_wheel_grab(E_BINDING_CONTEXT_POPUP, pp->popup->evas_win);
-
+   E_OBJECT_DEL_SET(pp->popup, _pager_popup_cb_del);
+   e_object_data_set(E_OBJECT(pp->popup), pp);
    e_popup_show(pp->popup);
 
    pp->timer = NULL;
@@ -827,14 +833,8 @@ _pager_popup_new(E_Zone *zone, int keyaction)
 static void
 _pager_popup_free(Pager_Popup *pp)
 {
-   if (pp->timer) ecore_timer_del(pp->timer);
-   evas_object_del(pp->o_bg);
-   _pager_free(pp->pager);
-   /* FIXME: COMP */
-   //e_bindings_mouse_ungrab(E_BINDING_CONTEXT_POPUP, pp->popup->evas_win);
-   //e_bindings_wheel_ungrab(E_BINDING_CONTEXT_POPUP, pp->popup->evas_win);
+   E_FREE_FUNC(pp->timer, ecore_timer_del);
    e_object_del(E_OBJECT(pp->popup));
-   free(pp);
 }
 
 static Pager_Popup *

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to