discomfitor pushed a commit to branch master.

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

commit d80dbc1a35cd1a332fff21a8ec5e549c517f23db
Author: Mike Blumenkrantz <zm...@samsung.com>
Date:   Wed Feb 12 20:37:52 2014 -0500

    add maximize_override client flag
    
    sometimes you just want to do stuff on a client without any maximize logic 
applying!
---
 src/bin/e_client.h      |  1 +
 src/bin/e_comp_object.c | 15 +++++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 90a081e..06a8dec 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -679,6 +679,7 @@ struct E_Client
    Eina_Bool layer_block : 1; // client is doing crazy stuff and should not be 
relayered in protocol
    Eina_Bool ignored : 1; // client is comp-ignored
    Eina_Bool no_shape_cut : 1; // client shape should not be cut
+   Eina_Bool maximize_override : 1; // client is doing crazy stuff and should 
"just do it" when moving/resizing
 };
 
 #define e_client_focus_policy_click(ec) \
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index d613073..39dff0e 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -694,13 +694,16 @@ _e_comp_intercept_move(void *data, Evas_Object *obj, int 
x, int y)
         cw->ec->x = x, cw->ec->y = y;
         return;
      }
-   if ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL)
-     y = cw->y;
-   if ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL)
-     x = cw->x;
+   if (!cw->ec->maximize_override)
+     {
+        if ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL)
+          y = cw->y;
+        if ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == 
E_MAXIMIZE_HORIZONTAL)
+          x = cw->x;
+     }
    ix = x + cw->client_inset.l;
    iy = y + cw->client_inset.t;
-   if (cw->ec->maximized && ((cw->ec->x != x) || (cw->ec->y != y)) &&
+   if (cw->ec->maximized && (!cw->ec->maximize_override) && ((cw->ec->x != x) 
|| (cw->ec->y != y)) &&
        ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) != E_MAXIMIZE_VERTICAL) &&
        ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) != E_MAXIMIZE_HORIZONTAL))
      {
@@ -751,7 +754,7 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int 
w, int h)
    /* calculate client size */
    iw = w - cw->client_inset.l - cw->client_inset.r;
    ih = h - cw->client_inset.t - cw->client_inset.b;
-   if (cw->ec->maximized && ((cw->ec->w != w) || (cw->ec->h != h)))
+   if (cw->ec->maximized && (!cw->ec->maximize_override) && ((cw->ec->w != w) 
|| (cw->ec->h != h)))
      {
         if ((!e_config->allow_manip) && ((cw->ec->maximized & 
E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH)) return;
         if ((!cw->ec->shading) && (!cw->ec->shaded))

-- 


Reply via email to