discomfitor pushed a commit to branch master.

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

commit b366d8bfb1b6fc77b7eb41dfe5e982b190d75de3
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Thu Mar 17 13:39:09 2016 -0400

    use agent objects for maximize effects
    
    this fixes maximize effects on csd windows by providing an object which
    will return usable geometry with evas_object_geometry_get()
---
 src/bin/e_client.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index c7e270d..1e125b2 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -1545,18 +1545,24 @@ _e_client_cb_evas_restack(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA
 ////////////////////////////////////////////////
 
 static void
-_e_client_maximize_done(void *data, E_Efx_Map_Data *emd EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED)
+_e_client_maximize_done(void *data, E_Efx_Map_Data *emd EINA_UNUSED, 
Evas_Object *obj)
 {
    E_Client *ec = data;
    ec->maximize_override = 0;
+   evas_object_del(obj);
 }
 
 static void
 _e_client_maximize_run(E_Client *ec, int x, int y, int w, int h)
 {
    if (e_config->window_maximize_animate && (!starting) && 
(!ec->changes.need_maximize))
-     e_efx_resize(ec->frame, e_config->window_maximize_transition, 
E_EFX_POINT(x, y),
-       w, h, e_config->window_maximize_time, _e_client_maximize_done, ec);
+     {
+        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),
+          w, h, e_config->window_maximize_time, _e_client_maximize_done, ec);
+     }
    else
      evas_object_geometry_set(ec->frame, x, y, w, h);
 }

-- 


Reply via email to