Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h desktops.c 


Log Message:
Fix background timeouts with offset desks.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.383
retrieving revision 1.384
diff -u -3 -r1.383 -r1.384
--- E.h 5 Mar 2005 12:19:46 -0000       1.383
+++ E.h 5 Mar 2005 17:52:01 -0000       1.384
@@ -1361,7 +1361,6 @@
 void                DeskGetArea(int desk, int *ax, int *ay);
 void                DeskSetArea(int desk, int ax, int ay);
 int                 DeskIsViewable(int desk);
-void                DeskSetViewable(int desk, int on);
 void                DeskSetDirtyStack(int desk);
 void                DeskGetCurrentArea(int *ax, int *ay);
 Window              DeskGetCurrentRoot(void);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.128
retrieving revision 1.129
diff -u -3 -r1.128 -r1.129
--- desktops.c  5 Mar 2005 12:19:48 -0000       1.128
+++ desktops.c  5 Mar 2005 17:52:01 -0000       1.129
@@ -552,12 +552,6 @@
 }
 
 void
-DeskSetViewable(int desk, int on)
-{
-   _DeskGet(desk)->viewable = on;
-}
-
-void
 DeskSetDirtyStack(int desk)
 {
    Desk               *d = _DeskGet(desk);
@@ -863,14 +857,14 @@
    if (desk < 0 || desk >= Conf.desks.num)
       return;
 
-   if (!_DeskGet(desk)->viewable)
+   d = _DeskGet(desk);
+
+   if (!d->viewable)
       return;
 
    if (EventDebug(EDBUG_TYPE_DESKS))
       Eprintf("DeskRefresh %d\n", desk);
 
-   d = _DeskGet(desk);
-
    bg = d->bg;
    if (!bg)
       return;
@@ -1094,75 +1088,52 @@
    if (desk <= 0 || desk >= Conf.desks.num)
       return;
 
+   n = -1;
+   i = 0;
+   while (n < 0 && i < Conf.desks.num)
+     {
+       if (desks.order[i] == desk)
+          n = i;
+       i++;
+     }
+   if (n < 0)                  /* Should not be possible */
+      return;
+
    d = _DeskGet(desk);
    dx = x - EoGetX(d);
    dy = y - EoGetY(d);
 
-   if ((x == 0) && (y == 0))
+   if (x == 0 && y == 0)
      {
-       n = -1;
-       i = 0;
-       while (n < 0 && i < Conf.desks.num)
-         {
-            if (desks.order[i] == desk)
-               n = i;
-            i++;
-         }
-       if (n >= 0)
+       /* Desks below are obscured - touch and set unviewable */
+       for (i = n + 1; i < Conf.desks.num; i++)
          {
-            for (i = n + 1; i < Conf.desks.num; i++)
-              {
-                 dd = _DeskGet(desks.order[i]);
-                 if (dd->viewable)
-                    BackgroundTouch(dd->bg);
-                 dd->viewable = 0;
-              }
+            dd = _DeskGet(desks.order[i]);
+            if (dd->viewable)
+               BackgroundTouch(dd->bg);
+            dd->viewable = 0;
          }
      }
    else
      {
-       n = -1;
-       i = 0;
+       v = d->viewable;
 
-       while (n < 0 && i < Conf.desks.num)
+       for (i = n + 1; i < Conf.desks.num; i++)
          {
-            if (desks.order[i] == desk)
-               n = i;
-            i++;
-         }
-
-       if (n >= 0)
-         {
-            dd = _DeskGet(desks.order[n]);
-            if (dd->viewable)
+            dd = _DeskGet(desks.order[i]);
+            if (!dd->viewable && v)
               {
-                 v = 1;
+                 dd->viewable = 1;
+                 DeskRefresh(desks.order[i]);
               }
-            else
+            else if (dd->viewable && !v)
               {
-                 v = 0;
+                 BackgroundTouch(dd->bg);
+                 dd->viewable = 0;
               }
 
-            for (i = n + 1; i < Conf.desks.num; i++)
-              {
-                 dd = _DeskGet(desks.order[i]);
-                 if ((!d->viewable) && (v))
-                   {
-                      d->viewable = v;
-                      DeskRefresh(desks.order[i]);
-                   }
-                 else
-                   {
-                      if ((!v) && (d->viewable))
-                         BackgroundTouch(d->bg);
-                      d->viewable = v;
-                   }
-
-                 if (EoGetX(d) == 0 && EoGetY(d) == 0)
-                   {
-                      v = 0;
-                   }
-              }
+            if (EoGetX(dd) == 0 && EoGetY(dd) == 0)
+               v = 0;
          }
      }
 
@@ -1660,8 +1631,7 @@
      case ESIGNAL_CONFIGURE:
        SetAreaSize(Conf.desks.areas_nx, Conf.desks.areas_ny);
 
-       DeskSetViewable(0, 1);
-       DeskRefresh(0);
+       UncoverDesktop(0);
 
        /* toss down the dragbar and related */
        DesksControlsCreate();
@@ -2248,6 +2218,18 @@
        sscanf(prm, "%i", &desk);
        ChangeNumberOfDesktops(desk);
      }
+   else if (!strncmp(cmd, "list", 2))
+     {
+       Desk               *d;
+
+       for (desk = 0; desk < Conf.desks.num; desk++)
+         {
+            d = _DeskGet(desk);
+            IpcPrintf("Desk %d: x,y=%d,%d w,h=%d,%d viewable=%d order=%d\n",
+                      desk, EoGetX(d), EoGetY(d), EoGetW(d), EoGetH(d),
+                      d->viewable, desks.order[desk]);
+         }
+     }
    else if (!strncmp(cmd, "goto", 2))
      {
        sscanf(prm, "%i", &desk);




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to