summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-06-20 16:00:53 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-06-20 16:04:10 -0400
commitb5576dbb8c98934ab0e8c5ff59bed106c02d9874 (patch)
treeab2821f8bcd792571785574a07adfab71d2977d6
parent9a9c09f514d02edf7feb6770cefacf0b3f77f2be (diff)
downloadenlightenment-b5576dbb8c98934ab0e8c5ff59bed106c02d9874.tar.gz
use separate flag for pending wl client unmaximize
also set flag to prevent saved geometry from being overwritten
-rw-r--r--src/bin/e_comp_wl.c14
-rw-r--r--src/bin/e_comp_wl.h1
2 files changed, 12 insertions, 3 deletions
diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 855f549d69..819a26d0f4 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -629,7 +629,7 @@ _e_comp_wl_evas_cb_unmaximize_pre(void *data, Evas_Object *obj EINA_UNUSED, void
{
int w, h, ew, eh, *ecw, *ech;
unsigned int pmax = ec->maximized;
- ec->comp_data->max = *max;
+ ec->comp_data->unmax = *max;
if (ec->internal)
ecw = &ec->client.w, ech = &ec->client.h;
else
@@ -1176,9 +1176,17 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state)
if (ec->comp_data->shell.set.unfullscreen)
e_client_unfullscreen(ec);
if (ec->comp_data->shell.set.maximize)
- e_client_maximize(ec, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | ec->comp_data->max);
+ {
+ ec->changes.need_maximize = 1;
+ e_client_maximize(ec, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | ec->comp_data->max);
+ ec->comp_data->max = 0;
+ ec->changes.need_maximize = 0;
+ }
if (ec->comp_data->shell.set.unmaximize)
- e_client_unmaximize(ec, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | ec->comp_data->max);
+ {
+ e_client_unmaximize(ec, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | ec->comp_data->unmax);
+ ec->comp_data->unmax = 0;
+ }
if (ec->comp_data->shell.set.minimize)
e_client_iconify(ec);
ec->comp_data->shell.set.fullscreen =
diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index 7bb3f7428c..984d531f1d 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -309,6 +309,7 @@ struct _E_Comp_Wl_Client_Data
} popup;
E_Maximize max;
+ E_Maximize unmax;
#ifndef HAVE_WAYLAND_ONLY
E_Pixmap *xwayland_pixmap;
E_Comp_X_Client_Data *xwayland_data;