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; --