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