From e23bf0cf6842a2a6db4eaea61866d9f48196a44f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 17 Mar 2017 13:17:02 -0400 Subject: [PATCH] do not use animations for wl clients with initial maximize state this looks fugly and breaks all kinds of things --- src/bin/e_comp_wl.c | 7 +++++-- src/bin/e_comp_wl.h | 1 + src/bin/e_comp_wl_extensions.c | 7 +++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 7ace93fc5..c15a9884d 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -816,6 +816,8 @@ _e_comp_wl_evas_cb_maximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void * E_Maximize *max = event_info; 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) ec->comp_data->maximizing = 1; 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; - if (!e_object_is_del(E_OBJECT(ec))) - ec->comp_data->maximizing = 0; + if (e_object_is_del(E_OBJECT(ec))) return; + ec->comp_data->maximizing = 0; + ec->maximize_anims_disabled = ec->comp_data->maximize_anims_disabled; } static void diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index cbb246f90..11ff33d07 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -357,6 +357,7 @@ struct _E_Comp_Wl_Client_Data Eina_Bool grab : 1; Eina_Bool buffer_commit : 1; Eina_Bool need_xdg6_configure : 1; + Eina_Bool maximize_anims_disabled : 1; }; struct _E_Comp_Wl_Output diff --git a/src/bin/e_comp_wl_extensions.c b/src/bin/e_comp_wl_extensions.c index 4bdc2754f..2860c6cb6 100644 --- a/src/bin/e_comp_wl_extensions.c +++ b/src/bin/e_comp_wl_extensions.c @@ -200,7 +200,10 @@ _e_comp_wl_www_surface_del(struct wl_resource *res) ec = wl_resource_get_user_data(res); 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; 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.x = ec->x; 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)); }