discomfitor pushed a commit to branch master.

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

commit e20b439020843e1f08ec8f18f2bb45f60e0583b3
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Tue Oct 4 09:18:28 2016 -0400

    handle "unmaximize" smart callback differently depending on fullscreen state
    
    this is a bit hacky, but it seems to provide accurate results to fix more 
maximize bugs
    
    ref c29157189f9e493a7a9b16739147ca22dced80d5
---
 src/bin/e_client.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index a09680e..b2d76cb 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -3950,6 +3950,7 @@ e_client_unmaximize(E_Client *ec, E_Maximize max)
           {
              int w, h, x, y;
              Eina_Bool horiz = EINA_FALSE, vert = EINA_FALSE;
+             Eina_Bool fullscreen = 
!!eina_list_data_find(ec->desk->fullscreen_clients, ec);
 
              e_client_unmaximize_geometry_get(ec, max, &x, &y, &w, &h);
              if (max & E_MAXIMIZE_VERTICAL)
@@ -3982,6 +3983,8 @@ e_client_unmaximize(E_Client *ec, E_Maximize max)
                }
              if (e_config->window_maximize_animate && 
(!ec->maximize_anims_disabled))
                ec->maximize_override = 1;
+             if (!fullscreen)
+               evas_object_smart_callback_call(ec->frame, "unmaximize", NULL);
              e_client_resize_limit(ec, &w, &h);
              if (ec->saved.frame &&
                (e_comp_object_frame_exists(ec->frame) || 
(!e_comp_object_frame_allowed(ec->frame))))
@@ -3989,7 +3992,8 @@ e_client_unmaximize(E_Client *ec, E_Maximize max)
                   e_comp_object_frame_xy_adjust(ec->frame, x, y, &x, &y);
                   e_comp_object_frame_wh_adjust(ec->frame, w, h, &w, &h);
                }
-             evas_object_smart_callback_call(ec->frame, "unmaximize", NULL);
+             if (fullscreen)
+               evas_object_smart_callback_call(ec->frame, "unmaximize", NULL);
              if (!_e_client_maximize_run(ec, x, y, w, h))
                ec->maximize_override = 0;
              if (vert)

-- 


Reply via email to