Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_config.c e_config.h 


Log Message:
smart maximize.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.259
retrieving revision 1.260
diff -u -3 -r1.259 -r1.260
--- e_border.c  16 Jun 2005 15:00:58 -0000      1.259
+++ e_border.c  16 Jun 2005 22:23:25 -0000      1.260
@@ -1069,9 +1069,53 @@
 
        e_hints_window_maximized_set(bd, 1);
 
-       /* FIXME maximize intelligently */
        e_border_raise(bd);
-       e_border_move_resize(bd, bd->zone->x, bd->zone->y, bd->zone->w, 
bd->zone->h);
+       if (e_config->smart_maximize)
+         {
+            Evas_List *l;
+            int x1, y1, x2, y2;
+
+            x1 = bd->zone->x;
+            y1 = bd->zone->y;
+            x2 = bd->zone->x + bd->zone->w;
+            y2 = bd->zone->y + bd->zone->h;
+
+            /* walk through all gadgets */
+            /* FIXME: Should we care about clients that aren't aligned to */
+            /* one edge? */
+            for (l = bd->zone->container->gadman->clients; l; l = l->next)
+              {
+                 E_Gadman_Client *gmc;
+
+                 gmc = l->data;
+                 if ((gmc->zone != bd->zone) ||
+                     ((gmc->policy & 0xff) != E_GADMAN_POLICY_EDGES))
+                   continue;
+                 switch (gmc->edge)
+                   {
+                    case E_GADMAN_EDGE_LEFT:
+                       if ((gmc->x + gmc->w) > x1)
+                         x1 = (gmc->x + gmc->w);
+                       break;
+                    case E_GADMAN_EDGE_RIGHT:
+                       if (gmc->x < x2)
+                         x2 = gmc->x;
+                       break;
+                    case E_GADMAN_EDGE_TOP:
+                       if ((gmc->y + gmc->h) > y1)
+                         y1 = (gmc->y + gmc->h);
+                       break;
+                    case E_GADMAN_EDGE_BOTTOM:
+                       if (gmc->y < y2)
+                         y2 = gmc->y;
+                       break;
+                   }
+              }
+            /* FIXME: walk through docks and toolbars */
+            e_border_move_resize(bd, x1, y1, x2 - x1, y2 - y1);
+         }
+       else
+         e_border_move_resize(bd, bd->zone->x, bd->zone->y, bd->zone->w, 
bd->zone->h);
        bd->maximized = 1;
        bd->changes.pos = 1;
        bd->changes.size = 1;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -3 -r1.61 -r1.62
--- e_config.c  15 Jun 2005 10:22:41 -0000      1.61
+++ e_config.c  16 Jun 2005 22:23:25 -0000      1.62
@@ -168,6 +168,7 @@
    E_CONFIG_VAL(D, T, winlist_pos_min_h, INT);
    E_CONFIG_VAL(D, T, winlist_pos_max_w, INT);
    E_CONFIG_VAL(D, T, winlist_pos_max_h, INT);
+   E_CONFIG_VAL(D, T, smart_maximize, INT);
    
    e_config = e_config_domain_load("e", _e_config_edd);
    if (e_config)
@@ -258,6 +259,7 @@
        e_config->winlist_pos_min_h = 0;
        e_config->winlist_pos_max_w = 320;
        e_config->winlist_pos_max_h = 320;
+       e_config->smart_maximize = 1;
        
          {
             E_Config_Module *em;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- e_config.h  14 Jun 2005 10:19:25 -0000      1.30
+++ e_config.h  16 Jun 2005 22:23:25 -0000      1.31
@@ -46,7 +46,7 @@
  * defaults for e to work - started at 100 when we introduced this config
  * versioning feature
  */
-#define E_CONFIG_FILE_VERSION 111
+#define E_CONFIG_FILE_VERSION 112
 
 #define E_EVAS_ENGINE_DEFAULT      0
 #define E_EVAS_ENGINE_SOFTWARE_X11 1
@@ -122,6 +122,7 @@
    int         winlist_pos_min_h;
    int         winlist_pos_max_w;
    int         winlist_pos_max_h;
+   int         smart_maximize;
 };
 
 /* FIXME: all of thsie needs to become eet lumps for enmcode/decode */




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to