discomfitor pushed a commit to branch master.

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

commit 7e5eb0a96d899dedf30b99eed3a2fcdea78075aa
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Mon Sep 28 14:39:42 2015 -0400

    allow client resizes on axes currently unrestricted by maximize state
    
    if this isn't explicitly blocked by config options then allowing resizes
    on the unmaximized axes is necessary in order to avoid accidentally
    queuing a full unmaximize
---
 src/bin/e_comp_object.c | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 291e43d..8c00cf8 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -1013,13 +1013,30 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, 
int w, int h)
         if ((!e_config->allow_manip) && ((cw->ec->maximized & 
E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH)) return;
         if ((!cw->ec->shading) && (!cw->ec->shaded))
           {
-             cw->ec->changes.need_unmaximize = 1;
-             cw->ec->saved.w = iw;
-             cw->ec->saved.h = ih;
-             cw->ec->saved.x = cw->ec->client.x - cw->ec->zone->x;
-             cw->ec->saved.y = cw->ec->client.y - cw->ec->zone->y;
-             EC_CHANGED(cw->ec);
-             return;
+             Eina_Bool reject = EINA_FALSE;
+             if (cw->ec->maximized & E_MAXIMIZE_VERTICAL)
+               {
+                  if (cw->ec->client.h != ih)
+                    {
+                       cw->ec->saved.h = ih;
+                       cw->ec->saved.y = cw->ec->client.y - cw->ec->zone->y;
+                       reject = cw->ec->changes.need_unmaximize = 1;
+                    }
+               }
+             if (cw->ec->maximized & E_MAXIMIZE_HORIZONTAL)
+               {
+                  if (cw->ec->client.w != iw)
+                    {
+                       cw->ec->saved.w = iw;
+                       cw->ec->saved.x = cw->ec->client.x - cw->ec->zone->x;
+                       reject = cw->ec->changes.need_unmaximize = 1;
+                    }
+               }
+             if (reject)
+               {
+                  EC_CHANGED(cw->ec);
+                  return;
+               }
           }
      }
    if (cw->ec->new_client || (!cw->ec->visible) || (!cw->effect_obj))

-- 


Reply via email to