track client maximize animation agents, delete upon beginning new animation

fixes an issue where unmaximize+maximize chaining would break client sizing
This commit is contained in:
Mike Blumenkrantz 2016-04-08 16:45:56 -04:00
parent cfca88bc95
commit 4c6a4ea4ce
2 changed files with 5 additions and 4 deletions

View File

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

View File

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