From: Mike Blumenkrantz Date: Mon, 28 Sep 2015 18:39:42 +0000 (-0400) Subject: allow client resizes on axes currently unrestricted by maximize state X-Git-Tag: upstream/0.20.0~221 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7e5eb0a96d899dedf30b99eed3a2fcdea78075aa;p=platform%2Fupstream%2Fenlightenment.git 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 --- 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))