Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        desktops.c ecompmgr.c 


Log Message:
Use per desk redirected background window.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.208
retrieving revision 1.209
diff -u -3 -r1.208 -r1.209
--- desktops.c  4 Dec 2005 09:38:27 -0000       1.208
+++ desktops.c  4 Dec 2005 23:53:20 -0000       1.209
@@ -427,6 +427,7 @@
 DeskCreate(int desk, int configure)
 {
    Desk               *dsk;
+   EObj               *eo;
    Window              win;
    char                buf[64];
 
@@ -448,10 +449,9 @@
    EoSetShadow(dsk, 0);
    if (desk == 0)
      {
-       EObj               *eo;
-
        desks.current = dsk;
-
+#if 0                          /* TBD - Use per virtual root bg window? */
+       /* Add background window */
        eo = EobjWindowCreate(EOBJ_TYPE_MISC_NR, 0, 0, VRoot.w, VRoot.h,
                              0, "Root-bg");
        eo->floating = 0;
@@ -460,6 +460,7 @@
        EobjMap(eo, 0);
        dsk->bg.o = eo;
        EventCallbackRegister(EobjGetWin(eo), 0, DeskHandleEvents, dsk);
+#endif
      }
    else
      {
@@ -474,6 +475,17 @@
        HintsSetRootInfo(EoGetWin(dsk), None, 0);
      }
 
+   /* Add background window */
+   Esnprintf(buf, sizeof(buf), "Desk-bg-%d", desk);
+   eo = EobjWindowCreate(EOBJ_TYPE_MISC, 0, 0, VRoot.w, VRoot.h, 0, buf);
+   eo->floating = 0;
+   eo->fade = eo->shadow = 0;
+   EobjReparent(eo, EoObj(dsk), 0, 0);
+   EobjSetLayer(eo, 0);
+   EobjMap(eo, 1);
+   dsk->bg.o = eo;
+   EventCallbackRegister(EobjGetWin(eo), 0, DeskHandleEvents, dsk);
+
    HintsSetRootHints(EoGetWin(dsk));
 
    if (configure)
@@ -696,13 +708,14 @@
    if (dsk->num == 0)
      {
        EoSync(dsk);
-       EobjMoveResize(dsk->bg.o, 0, 0, w, h);
      }
    else
      {
        x = (dsk->viewable) ? EoGetX(dsk) : VRoot.w;
        EoMoveResize(dsk, x, 0, w, h);
      }
+   if (dsk->bg.o && dsk->bg.o != EoObj(dsk))
+      EobjMoveResize(dsk->bg.o, 0, 0, w, h);
    DeskBackgroundUpdate(dsk);
    DeskControlsDestroy(dsk, 1);
    DeskControlsCreate(dsk);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ecompmgr.c,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -3 -r1.87 -r1.88
--- ecompmgr.c  4 Dec 2005 18:30:22 -0000       1.87
+++ ecompmgr.c  4 Dec 2005 23:53:20 -0000       1.88
@@ -249,11 +249,13 @@
    return rgn;
 }
 
+#if USE_EXPOSE                 /* FIXME - Need this? */
 static              XserverRegion
 ERegionCreateFromRects(XRectangle * rectangles, int nrectangles)
 {
    return XFixesCreateRegion(disp, rectangles, nrectangles);
 }
+#endif
 
 static              XserverRegion
 ERegionCreateFromWindow(Window win)
@@ -493,7 +495,7 @@
    if (!Mode_compmgr.active)
       return 0;
 
-   eo = (dsk->num) ? EoObj(dsk) : dsk->bg.o;
+   eo = dsk->bg.o;
    if (!eo)
       return 1;
    cw = eo->cmhook;
@@ -1771,6 +1773,14 @@
                  ((ECmWinInfo *) (eo1->cmhook))->prev = eo_prev;
                  eo_prev = eo2;
               }
+
+#if 1                          /* TBD - Only if using per desk bg overlay */
+            /* FIXME - We should break when the clip region becomes empty */
+            if (eo->x == 0 && eo->y == 0)
+               stop = 1;
+            if (stop)
+               break;
+#endif
          }
 
        ECompMgrWinSetPicts(eo);
@@ -1811,11 +1821,13 @@
             break;
          }
 
-       /*  FIXME - We should break when the clip region becomes empty */
+#if 0                          /* TBD - Not if using per desk bg overlay */
+       /* FIXME - We should break when the clip region becomes empty */
        if (eo->type == EOBJ_TYPE_DESK && eo->x == 0 && eo->y == 0)
           stop = 1;
        if (stop)
           break;
+#endif
      }
    if (eo_prev)
       ((ECmWinInfo *) (eo_prev->cmhook))->next = NULL;
@@ -2031,7 +2043,7 @@
    return;
 }
 
-#if 1                          /* FIXME - Need this? */
+#if USE_EXPOSE                 /* FIXME - Need this? */
 static void
 ECompMgrRootExpose(void *prm __UNUSED__, XEvent * ev)
 {
@@ -2418,12 +2430,12 @@
           ECompMgrWinCirculate(eo, ev);
        break;
 
+#if USE_EXPOSE                 /* FIXME - Need this? */
      case Expose:
-#if 1                          /* FIXME - Need this? */
        if (Conf_compmgr.shadows.mode != ECM_SHADOWS_OFF)
           ECompMgrRootExpose(prm, ev);
-#endif
        break;
+#endif
      }
 }
 




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to