discomfitor pushed a commit to branch master.

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

commit e3faaf865ef0db38ab1b3a72c091feff741e1d8a
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Mar 22 16:15:16 2017 -0400

    do not set intermediate client geometry when doing fullscreen -> maximized
    
    this provides a smoother experience for the transition as well as being a
    more optimized operation
---
 src/bin/e_client.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 873d65b..64da659 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -4403,26 +4403,30 @@ e_client_unfullscreen(E_Client *ec)
      _e_client_frame_update(ec);
    ec->fullscreen_policy = 0;
    evas_object_smart_callback_call(ec->frame, "unfullscreen", NULL);
-   if (ec->saved.frame &&
-     (e_comp_object_frame_exists(ec->frame) || 
(!e_comp_object_frame_allowed(ec->frame))))
-     e_client_util_move_resize_without_frame(ec, ec->zone->x + ec->saved.x,
-                                             ec->zone->y + ec->saved.y,
-                                             ec->saved.w, ec->saved.h);
-   else
-      evas_object_geometry_set(ec->frame, ec->zone->x + ec->saved.x,
-                                              ec->zone->y + ec->saved.y,
-                                              ec->saved.w, ec->saved.h);
-   ec->saved.frame = 0;
 
    if (ec->saved.maximized)
      {
         Eina_Bool maximize_anims_disabled = ec->maximize_anims_disabled;
-        ec->changes.size = 0;
+        ec->changes.pos = ec->changes.size = 0;
         ec->maximize_anims_disabled = 1;
         e_client_maximize(ec,
           (e_config->maximize_policy & E_MAXIMIZE_TYPE) | ec->saved.maximized);
         ec->maximize_anims_disabled = maximize_anims_disabled;
      }
+   else
+     {
+        if (ec->saved.frame &&
+          (e_comp_object_frame_exists(ec->frame) || 
(!e_comp_object_frame_allowed(ec->frame))))
+          e_client_util_move_resize_without_frame(ec, ec->zone->x + 
ec->saved.x,
+                                                  ec->zone->y + ec->saved.y,
+                                                  ec->saved.w, ec->saved.h);
+        else
+           evas_object_geometry_set(ec->frame, ec->zone->x + ec->saved.x,
+                                                   ec->zone->y + ec->saved.y,
+                                                   ec->saved.w, ec->saved.h);
+        ec->saved.w = ec->saved.x = ec->saved.h = ec->saved.y = 0;
+        ec->saved.set = ec->saved.frame = 0;
+     }
 
    evas_object_layer_set(ec->frame, ec->saved.layer);
 

-- 


Reply via email to