From: Mike Blumenkrantz Date: Mon, 28 Sep 2015 18:36:59 +0000 (-0400) Subject: remove client maximize states during unmaximize only if they are active X-Git-Tag: upstream/0.20.0~223 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f0fc7a12deab10d9058fb15b774895f7a9e292a2;p=platform%2Fupstream%2Fenlightenment.git remove client maximize states during unmaximize only if they are active do not accidentally remove untested states using bad math operations --- diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 53c91f8..0f91ba9 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -3837,9 +3837,12 @@ e_client_unmaximize(E_Client *ec, E_Maximize max) h = ec->saved.h; vert = EINA_TRUE; y = ec->saved.y + ec->zone->y; - ec->maximized &= ~E_MAXIMIZE_VERTICAL; - ec->maximized &= ~E_MAXIMIZE_LEFT; - ec->maximized &= ~E_MAXIMIZE_RIGHT; + if ((max & E_MAXIMIZE_VERTICAL) == E_MAXIMIZE_VERTICAL) + ec->maximized &= ~E_MAXIMIZE_VERTICAL; + if ((max & E_MAXIMIZE_LEFT) == E_MAXIMIZE_LEFT) + ec->maximized &= ~E_MAXIMIZE_LEFT; + if ((max & E_MAXIMIZE_RIGHT) == E_MAXIMIZE_RIGHT) + ec->maximized &= ~E_MAXIMIZE_RIGHT; } if (max & E_MAXIMIZE_HORIZONTAL) {