diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 676a664b0..1ab8f67b4 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -1549,7 +1549,8 @@ _e_client_maximize_done(void *data, E_Efx_Map_Data *emd EINA_UNUSED, Evas_Object 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)) + if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled) && + (!starting) && (!ec->changes.need_maximize)) { Evas_Object *agent; @@ -3812,7 +3813,9 @@ e_client_maximize(E_Client *ec, E_Maximize max) e_client_maximize_geometry_get(ec, max, &x, &y, &w, &h); _e_client_maximize_run(ec, x, y, w, h); } - if (ec->maximize_override && (starting || ec->changes.need_maximize || (!e_config->window_maximize_animate))) + if (ec->maximize_override && (ec->maximize_anims_disabled || starting || + ec->changes.need_maximize || + (!e_config->window_maximize_animate))) ec->maximize_override = override; /* Remove previous type */ @@ -3957,7 +3960,7 @@ e_client_unmaximize(E_Client *ec, E_Maximize max) _e_client_frame_update(ec); e_hints_window_size_unset(ec); } - if (e_config->window_maximize_animate) + if (e_config->window_maximize_animate && (!ec->maximize_anims_disabled)) ec->maximize_override = 1; evas_object_smart_callback_call(ec->frame, "unmaximize", NULL); e_client_resize_limit(ec, &w, &h); diff --git a/src/bin/e_client.h b/src/bin/e_client.h index 55c9e2f1d..5d8295ce9 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -684,6 +684,10 @@ struct E_Client E_Focus_Policy focus_policy_override; +#ifdef HAVE_WAYLAND + uuid_t uuid; +#endif + Eina_Bool override : 1; Eina_Bool input_only : 1; Eina_Bool dialog : 1; @@ -695,12 +699,10 @@ struct E_Client Eina_Bool ignored : 1; // client is comp-ignored Eina_Bool no_shape_cut : 1; // client shape should not be cut Eina_Bool maximize_override : 1; // client is doing crazy stuff and should "just do it" when moving/resizing + Eina_Bool maximize_anims_disabled : 1; // client cannot invoke anims or it will break Eina_Bool keyboard_resizing : 1; Eina_Bool on_post_updates : 1; // client is on the post update list -#ifdef HAVE_WAYLAND - uuid_t uuid; -#endif }; #define e_client_focus_policy_click(ec) \