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