Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: E.h buttons.c desktops.c ecompmgr.c ewins.c Log Message: Fix adding desks, avoid some X-errors, cleanups. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v retrieving revision 1.479 retrieving revision 1.480 diff -u -3 -r1.479 -r1.480 --- E.h 13 Aug 2005 08:50:27 -0000 1.479 +++ E.h 13 Aug 2005 16:23:59 -0000 1.480 @@ -1142,13 +1142,8 @@ void DeskGetCurrentArea(int *ax, int *ay); Window DeskGetCurrentRoot(void); void DeskSetCurrentArea(int ax, int ay); -int DesksGetNumber(void); -int DesksGetCurrent(void); -void DesksSetCurrent(int desk); -void DesksResize(int w, int h); void DeskRefresh(int num); -void DesksRefresh(void); void DeskAssignBg(int desk, Background * bg); void DeskSetBg(int desk, Background * bg, int refresh); int DesktopAt(int x, int y); @@ -1157,10 +1152,16 @@ void DeskShow(int num); void StackDesktop(int num); void DeskGotoByEwin(EWin * ewin); -void DesksEventsConfigure(int mode); void DeskDragStart(int desk); void DeskDragMotion(void); +int DesksGetNumber(void); +int DesksGetCurrent(void); +void DesksSetCurrent(int desk); +void DesksClear(void); +void DesksResize(int w, int h); +void DesksEventsConfigure(int mode); + /* dialog.c */ typedef void (DialogCallbackFunc) (Dialog * d, int val, void *data); typedef void (DialogItemCallbackFunc) (int val, void *data); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/buttons.c,v retrieving revision 1.68 retrieving revision 1.69 diff -u -3 -r1.68 -r1.69 --- buttons.c 16 Jul 2005 16:57:38 -0000 1.68 +++ buttons.c 13 Aug 2005 16:23:59 -0000 1.69 @@ -159,9 +159,7 @@ while (RemoveItemByPtr(b, LIST_TYPE_BUTTON)); EobjFini(&b->o); - - if (EoGetWin(b)) - EDestroyWindow(EoGetWin(b)); + EDestroyWindow(EoGetWin(b)); if (b->iclass) b->iclass->ref_count--; =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v retrieving revision 1.163 retrieving revision 1.164 diff -u -3 -r1.163 -r1.164 --- desktops.c 13 Aug 2005 08:50:28 -0000 1.163 +++ desktops.c 13 Aug 2005 16:23:59 -0000 1.164 @@ -390,7 +390,10 @@ DeskSetBg(d->num, bg, 0); if (d->num > 0) - EoMap(d, 0); + { + EoMove(d, VRoot.w, 0); + EoMap(d, 0); + } ModulesSignal(ESIGNAL_DESK_ADDED, ((void *)(long)(d->num))); } @@ -470,9 +473,8 @@ if (d->bg) BackgroundDecRefcount(d->bg); - EDestroyWindow(EoGetWin(d)); - EobjFini(&d->o); + EDestroyWindow(EoGetWin(d)); desks.desk[d->num] = NULL; Efree(d); @@ -610,6 +612,20 @@ } void +DesksClear(void) +{ + Desk *d; + int i; + + for (i = 0; i < Conf.desks.num; i++) + { + d = _DeskGet(i); + if (d->viewable) + EClearWindow(EoGetWin(d)); + } +} + +void DesksResize(int w, int h) { int i; @@ -840,20 +856,6 @@ } void -DesksRefresh(void) -{ - Desk *d; - int i; - - for (i = 0; i < Conf.desks.num; i++) - { - d = _DeskGet(i); - if (d->bg) - DeskSetBg(i, d->bg, 1); - } -} - -void DeskAssignBg(int desk, Background * bg) { if (desk < 0 || desk >= ENLIGHTENMENT_CONF_NUM_DESKTOPS) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ecompmgr.c,v retrieving revision 1.51 retrieving revision 1.52 diff -u -3 -r1.51 -r1.52 --- ecompmgr.c 10 Aug 2005 19:23:58 -0000 1.51 +++ ecompmgr.c 13 Aug 2005 16:23:59 -0000 1.52 @@ -436,7 +436,6 @@ D1printf("DeskBackgroundPictureFree: Desk %d: pict=%#lx\n", d->num, pict); - XClearArea(disp, EoGetWin(d), 0, 0, 0, 0, False); XRenderFreePicture(disp, pict); cw->picture = None; @@ -1781,6 +1780,7 @@ D1printf("ECompMgrDeskChanged: desk=%d\n", desk); DeskBackgroundPictureFree(d); + ECompMgrDamageAll(); } #if ENABLE_SHADOWS @@ -1935,6 +1935,9 @@ XCompositeUnredirectSubwindows(disp, VRoot.win, CompositeRedirectManual); EventCallbackUnregister(VRoot.win, 0, ECompMgrHandleRootEvent, NULL); + + if (Conf_compmgr.shadow != ECM_SHADOWS_OFF) + DesksClear(); } void =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v retrieving revision 1.94 retrieving revision 1.95 diff -u -3 -r1.94 -r1.95 --- ewins.c 10 Aug 2005 19:33:33 -0000 1.94 +++ ewins.c 13 Aug 2005 16:23:59 -0000 1.95 @@ -219,6 +219,7 @@ EobjListOrderDel(&ewin->o); EobjListFocusDel(&ewin->o); EobjFini(&ewin->o); + EDestroyWindow(EoGetWin(ewin)); HintsSetClientList(); @@ -244,8 +245,6 @@ if (ewin->ewmh.wm_icon) Efree(ewin->ewmh.wm_icon); #endif - if (EoGetWin(ewin)) - EDestroyWindow(EoGetWin(ewin)); if (ewin->bits) Efree(ewin->bits); if (ewin->session_id) ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs