do not use animations for wl clients with initial maximize state

this looks fugly and breaks all kinds of things
This commit is contained in:
Mike Blumenkrantz 2017-03-17 13:17:02 -04:00
parent 0d8b33c15f
commit e23bf0cf68
3 changed files with 11 additions and 4 deletions

View File

@ -816,6 +816,8 @@ _e_comp_wl_evas_cb_maximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void *
E_Maximize *max = event_info; E_Maximize *max = event_info;
if (e_object_is_del(E_OBJECT(ec))) return; if (e_object_is_del(E_OBJECT(ec))) return;
if (!ec->comp_data->buffer_commit)
ec->maximize_anims_disabled = 1;
if (ec->comp_data->in_commit) if (ec->comp_data->in_commit)
ec->comp_data->maximizing = 1; ec->comp_data->maximizing = 1;
else if (!e_client_has_xwindow(ec)) else if (!e_client_has_xwindow(ec))
@ -925,8 +927,9 @@ _e_comp_wl_evas_cb_maximize_done(void *data, Evas_Object *obj EINA_UNUSED, void
{ {
E_Client *ec = data; E_Client *ec = data;
if (!e_object_is_del(E_OBJECT(ec))) if (e_object_is_del(E_OBJECT(ec))) return;
ec->comp_data->maximizing = 0; ec->comp_data->maximizing = 0;
ec->maximize_anims_disabled = ec->comp_data->maximize_anims_disabled;
} }
static void static void

View File

@ -357,6 +357,7 @@ struct _E_Comp_Wl_Client_Data
Eina_Bool grab : 1; Eina_Bool grab : 1;
Eina_Bool buffer_commit : 1; Eina_Bool buffer_commit : 1;
Eina_Bool need_xdg6_configure : 1; Eina_Bool need_xdg6_configure : 1;
Eina_Bool maximize_anims_disabled : 1;
}; };
struct _E_Comp_Wl_Output struct _E_Comp_Wl_Output

View File

@ -200,7 +200,10 @@ _e_comp_wl_www_surface_del(struct wl_resource *res)
ec = wl_resource_get_user_data(res); ec = wl_resource_get_user_data(res);
if (!e_object_is_del(E_OBJECT(ec))) if (!e_object_is_del(E_OBJECT(ec)))
ec->comp_data->www.surface = NULL; {
ec->comp_data->www.surface = NULL;
ec->comp_data->maximize_anims_disabled = 0;
}
ec->maximize_anims_disabled = 0; ec->maximize_anims_disabled = 0;
e_object_unref(E_OBJECT(ec)); e_object_unref(E_OBJECT(ec));
} }
@ -242,7 +245,7 @@ _e_comp_wl_www_cb_create(struct wl_client *client, struct wl_resource *resource,
ec->comp_data->www.surface = ww; ec->comp_data->www.surface = ww;
ec->comp_data->www.x = ec->x; ec->comp_data->www.x = ec->x;
ec->comp_data->www.y = ec->y; ec->comp_data->www.y = ec->y;
ec->maximize_anims_disabled = 1; ec->comp_data->maximize_anims_disabled = ec->maximize_anims_disabled = 1;
e_object_ref(E_OBJECT(ec)); e_object_ref(E_OBJECT(ec));
} }