forked from enlightenment/enlightenment
add E_Client->maximize_anims_disabled to selectively disable maximize anims
for some clients it's impossible to animate resizing due to various race conditions being created which will break the client
This commit is contained in:
parent
b4b682cd6a
commit
a7adf21c88
|
@ -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);
|
||||
|
|
|
@ -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) \
|
||||
|
|
Loading…
Reference in New Issue