discomfitor pushed a commit to branch enlightenment-0.21.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=a61f64f150030875ab81e340b9b4a2f949144469

commit a61f64f150030875ab81e340b9b4a2f949144469
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed Nov 30 11:15:42 2016 -0500

    use more accurate determination for applying xdg-shell (un)maximize 
operations
    
    fixes maximizing again
---
 src/modules/wl_desktop_shell/e_mod_main.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index bb9cf5d..d9566d1 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -721,7 +721,7 @@ _xdg_shell_surface_send_configure(struct wl_resource 
*resource, Eina_Bool fullsc
      {
         if (maximized)
           pending |= STATE_MAXIMIZED;
-        else if (ec->maximized)
+        else if (ec->maximized || ec->comp_data->unmax)
           pending |= STATE_UNMAXIMIZED;
      }
    shd->maximized = maximized;
@@ -987,13 +987,15 @@ _e_xdg_shell_surface_cb_ack_configure(struct wl_client 
*client EINA_UNUSED, stru
           {
              ec->comp_data->shell.set.maximize = 1;
              ec->comp_data->shell.set.unmaximize = 0;
-             ec->comp_data->max = (e_config->maximize_policy & 
E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
+             if (!ec->comp_data->max)
+               ec->comp_data->max = (e_config->maximize_policy & 
E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
           }
         if (ps->state & STATE_UNMAXIMIZED)
           {
              ec->comp_data->shell.set.unmaximize = 1;
              ec->comp_data->shell.set.maximize = 0;
-             ec->comp_data->unmax = (e_config->maximize_policy & 
E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
+             if (!ec->comp_data->unmax)
+               ec->comp_data->unmax = (e_config->maximize_policy & 
E_MAXIMIZE_TYPE) | E_MAXIMIZE_BOTH;
           }
         shd->pending = eina_list_remove_list(shd->pending, l);
         free(ps);

-- 


Reply via email to