discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=4c6a4ea4ceabe7bc51e94c62411729c1cde4ace2

commit 4c6a4ea4ceabe7bc51e94c62411729c1cde4ace2
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Apr 8 16:45:56 2016 -0400

    track client maximize animation agents, delete upon beginning new animation
    
    fixes an issue where unmaximize+maximize chaining would break client sizing
---
 src/bin/e_client.c | 8 ++++----
 src/bin/e_client.h | 1 +
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 5039333..101791f 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -1543,6 +1543,7 @@ _e_client_maximize_done(void *data, E_Efx_Map_Data *emd 
EINA_UNUSED, Evas_Object
 {
    E_Client *ec = data;
    ec->maximize_override = 0;
+   ec->agent = NULL;
    evas_object_del(obj);
 }
 
@@ -1552,10 +1553,9 @@ _e_client_maximize_run(E_Client *ec, int x, int y, int 
w, int h)
    if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled) &&
        (!starting) && (!ec->changes.need_maximize))
      {
-        Evas_Object *agent;
-
-        agent = e_comp_object_agent_add(ec->frame);
-        e_efx_resize(agent, e_config->window_maximize_transition, 
E_EFX_POINT(x, y),
+        evas_object_del(ec->agent);
+        ec->agent = e_comp_object_agent_add(ec->frame);
+        e_efx_resize(ec->agent, e_config->window_maximize_transition, 
E_EFX_POINT(x, y),
           w, h, e_config->window_maximize_time, _e_client_maximize_done, ec);
         return EINA_TRUE;
      }
diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 5d8295c..ae48192 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -234,6 +234,7 @@ struct E_Client
    } pre_cb;
    Eina_Rectangle client; //client geom
    Evas_Object *frame; //comp object
+   Evas_Object *agent; //resize agent;
    E_Zone *zone;
    E_Desk *desk;
 

-- 


Reply via email to