summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-10-04 09:18:28 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-10-04 09:37:17 -0400
commitb79996c08e4a0efd32f38e889399abb45449e57e (patch)
treec6346db6a7c71c5283c688bcb487e76d89345155
parent8e16b5bcfcb6b9fb53b62e24297829a6412bd0f0 (diff)
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
-rw-r--r--src/bin/e_client.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index a09680e90..b2d76cb95 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)
3950 { 3950 {
3951 int w, h, x, y; 3951 int w, h, x, y;
3952 Eina_Bool horiz = EINA_FALSE, vert = EINA_FALSE; 3952 Eina_Bool horiz = EINA_FALSE, vert = EINA_FALSE;
3953 Eina_Bool fullscreen = !!eina_list_data_find(ec->desk->fullscreen_clients, ec);
3953 3954
3954 e_client_unmaximize_geometry_get(ec, max, &x, &y, &w, &h); 3955 e_client_unmaximize_geometry_get(ec, max, &x, &y, &w, &h);
3955 if (max & E_MAXIMIZE_VERTICAL) 3956 if (max & E_MAXIMIZE_VERTICAL)
@@ -3982,6 +3983,8 @@ e_client_unmaximize(E_Client *ec, E_Maximize max)
3982 } 3983 }
3983 if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled)) 3984 if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled))
3984 ec->maximize_override = 1; 3985 ec->maximize_override = 1;
3986 if (!fullscreen)
3987 evas_object_smart_callback_call(ec->frame, "unmaximize", NULL);
3985 e_client_resize_limit(ec, &w, &h); 3988 e_client_resize_limit(ec, &w, &h);
3986 if (ec->saved.frame && 3989 if (ec->saved.frame &&
3987 (e_comp_object_frame_exists(ec->frame) || (!e_comp_object_frame_allowed(ec->frame)))) 3990 (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)
3989 e_comp_object_frame_xy_adjust(ec->frame, x, y, &x, &y); 3992 e_comp_object_frame_xy_adjust(ec->frame, x, y, &x, &y);
3990 e_comp_object_frame_wh_adjust(ec->frame, w, h, &w, &h); 3993 e_comp_object_frame_wh_adjust(ec->frame, w, h, &w, &h);
3991 } 3994 }
3992 evas_object_smart_callback_call(ec->frame, "unmaximize", NULL); 3995 if (fullscreen)
3996 evas_object_smart_callback_call(ec->frame, "unmaximize", NULL);
3993 if (!_e_client_maximize_run(ec, x, y, w, h)) 3997 if (!_e_client_maximize_run(ec, x, y, w, h))
3994 ec->maximize_override = 0; 3998 ec->maximize_override = 0;
3995 if (vert) 3999 if (vert)