Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ipc.c size.c 


Log Message:
Minor bug fixes to maximise code.
Spanning Xinerama screens now requires "xinerama".

===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ipc.c,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -3 -r1.109 -r1.110
--- ipc.c       12 Jul 2003 15:04:31 -0000      1.109
+++ ipc.c       8 Aug 2003 18:30:34 -0000       1.110
@@ -285,7 +285,7 @@
     "win_op <windowid> annihilate\n  win_op <windowid> iconify\n  "
     "win_op <windowid> shade\n  win_op <windowid> stick\n  "
     "win_op <windowid> toggle_<width/height/size> "
-    "<conservative/available>\n          (or none for absolute)\n  "
+    "<conservative/available/xinerama>\n          (or none for absolute)\n  "
     "win_op <windowid> border <BORDERNAME>\n  win_op <windowid> "
     "desk <desktochangeto/next/prev>\n  win_op <windowid> "
     "area <x> <y>\n  win_op <windowid> <raise/lower>\n  "
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/size.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- size.c      20 Jul 2003 18:02:16 -0000      1.27
+++ size.c      8 Aug 2003 18:30:34 -0000       1.28
@@ -26,9 +26,10 @@
 #define MAX_HOR 0x1
 #define MAX_VER 0x2
 
-#define MAX_ABSOLUTE     0
-#define MAX_AVAILABLE    1
-#define MAX_CONSERVATIVE 2
+#define MAX_ABSOLUTE     0     /* Fill screen */
+#define MAX_AVAILABLE    1     /* Expand until don't cover */
+#define MAX_CONSERVATIVE 2     /* Expand until something */
+#define MAX_XINERAMA     3     /* Fill Xinerama screen */
 
 static void
 MaxSizeHV(EWin * ewin, char *resize_type, int direction)
@@ -51,22 +52,27 @@
        goto exit;
      }
 
-   if ((resize_type) && (!strcmp(resize_type, "available")))
+   type = MAX_ABSOLUTE;                /* Select default */
+   if (!resize_type)
+      ;
+   else if (!strcmp(resize_type, "absolute"))
+      type = MAX_ABSOLUTE;
+   else if (!strcmp(resize_type, "available"))
       type = MAX_AVAILABLE;
-   else if ((resize_type) && (!strcmp(resize_type, "conservative")))
+   else if (!strcmp(resize_type, "conservative"))
       type = MAX_CONSERVATIVE;
-   else
-      type = MAX_ABSOLUTE;
+   else if (!strcmp(resize_type, "xinerama"))
+      type = MAX_XINERAMA;
 
    /* Default is no change */
    y = ewin->y;
-   h = ewin->h;
    x = ewin->x;
-   w = ewin->w;
+   h = ewin->client.h;
+   w = ewin->client.w;
 
    switch (type)
      {
-     case MAX_ABSOLUTE:
+     case MAX_XINERAMA:
        if (direction & MAX_HOR)
          {
             x = 0;
@@ -81,12 +87,9 @@
          }
        break;
 
-     case MAX_CONSERVATIVE:
+     case MAX_ABSOLUTE:
      case MAX_AVAILABLE:
-       lst = (EWin **) ListItemType(&num, LIST_TYPE_EWIN);
-       if (!lst)
-          break;
-
+     case MAX_CONSERVATIVE:
        ScreenGetGeometry(ewin->x, ewin->y, &x1, &y1, &x2, &y2);
        x2 += x1;
        y2 += y1;
@@ -105,6 +108,17 @@
          }
 #endif
 
+       if (type == MAX_ABSOLUTE)
+         {
+            /* Simply ignore all windows */
+            lst = NULL;
+            num = 0;
+         }
+       else
+         {
+            lst = (EWin **) ListItemType(&num, LIST_TYPE_EWIN);
+         }
+
        if (direction & MAX_VER)
          {
             for (i = 0; i < num; i++)
@@ -116,7 +130,7 @@
                      pe->ignorearrange ||
                      (ewin->desktop != pe->desktop && !pe->sticky) ||
                      (pe->type & (EWIN_TYPE_DIALOG | EWIN_TYPE_MENU)) ||
-                     (type == MAX_AVAILABLE && pe->never_use_area) ||
+                     (type == MAX_AVAILABLE && !pe->never_use_area) ||
                      !SPANS_COMMON(x, w, pe->x, pe->w))
                     continue;
 
@@ -141,7 +155,7 @@
                      pe->ignorearrange ||
                      (ewin->desktop != pe->desktop && !pe->sticky) ||
                      (pe->type & (EWIN_TYPE_DIALOG | EWIN_TYPE_MENU)) ||
-                     (type == MAX_AVAILABLE && pe->never_use_area) ||
+                     (type == MAX_AVAILABLE && !pe->never_use_area) ||
                      !SPANS_COMMON(y, h, pe->y, pe->h))
                     continue;
 
@@ -155,7 +169,8 @@
                            ewin->border->border.right);
          }
 
-       Efree(lst);
+       if (lst)
+          Efree(lst);
        break;
      }
 




-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to