Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/pager


Modified Files:
        e_mod_main.c 


Log Message:
This should make it possible to change both rows and columns of desks at
the same time.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/pager/e_mod_main.c,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -3 -r1.96 -r1.97
--- e_mod_main.c        12 Jun 2005 06:50:34 -0000      1.96
+++ e_mod_main.c        13 Jun 2005 19:49:11 -0000      1.97
@@ -1162,7 +1162,6 @@
    E_Desk                      *desk;
    Evas_List                   *l;
    int                          desks_x, desks_y;
-   int                          max_x, max_y;
    int                          x, y;
    Evas_Coord                   lw, lh, dw, dh;
 
@@ -1180,12 +1179,28 @@
    else dh = 0;
    dh *= (desks_y - face->ynum);
    
-   max_x = MAX(face->xnum, desks_x);
-   max_y = MAX(face->ynum, desks_y);
-
-   for (x = 0; x < max_x; x++)
+   /* Loop to remove extra desks */
+   for (l = face->desks; l;)
+     {
+       pd = l->data;
+       l = l->next;
+       if ((pd->xpos >= desks_x) || (pd->ypos >= desks_y))
+         {
+            /* remove desk */
+            if (pd->current)
+              {
+                 desk = e_desk_current_get(ev->zone);
+                 pd2 = _pager_face_desk_find(face, desk);
+                 _pager_face_desk_select(pd2);
+              }
+            face->desks = evas_list_remove(face->desks, pd);
+            _pager_desk_free(pd);
+         }
+     }
+   /* Loop to add new desks */
+   for (x = 0; x < desks_x; x++)
      {
-       for (y = 0; y < max_y; y++)
+       for (y = 0; y < desks_y; y++)
          {
             if ((x >= face->xnum) || (y >= face->ynum))
               {
@@ -1195,24 +1210,6 @@
                  if (pd)
                    face->desks = evas_list_append(face->desks, pd);
               }
-            else if ((x >= desks_x) || (y >= desks_y))
-              {
-                 /* del desk */
-                 for (l = face->desks; l; l = l->next)
-                   {
-                      pd = l->data;
-                      if ((pd->xpos == x) && (pd->ypos == y))
-                        break;
-                   }
-                 if (pd->current)
-                   {
-                      desk = e_desk_current_get(ev->zone);
-                      pd2 = _pager_face_desk_find(face, desk);
-                      _pager_face_desk_select(pd2);
-                   }
-                 face->desks = evas_list_remove(face->desks, pd);
-                 _pager_desk_free(pd);
-              }
          }
      }
    




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to