Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: desktops.c Log Message: Fix destruction of desk background window and composite update on desk switch. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v retrieving revision 1.212 retrieving revision 1.213 diff -u -3 -r1.212 -r1.213 --- desktops.c 8 Dec 2005 18:45:40 -0000 1.212 +++ desktops.c 12 Dec 2005 20:45:57 -0000 1.213 @@ -499,6 +499,12 @@ { ModulesSignal(ESIGNAL_DESK_REMOVED, dsk); + if (dsk->bg.o != EoObj(dsk)) + { + EventCallbackUnregister(EobjGetWin(dsk->bg.o), 0, DeskHandleEvents, + dsk); + EobjWindowDestroy(dsk->bg.o); + } EventCallbackUnregister(EoGetWin(dsk), 0, DeskHandleEvents, dsk); DeskControlsDestroy(dsk, 1); @@ -1019,17 +1025,17 @@ } static void -MoveToDeskTop(unsigned int desk) +MoveToDeskTop(Desk * dsk) { int i, j; - EobjListStackRaise(&desks.desk[desk]->o); + EoRaise(dsk); j = -1; i = 0; while (j < 0 && i < (int)Conf.desks.num) { - if (desks.order[i] == desk) + if (desks.order[i] == dsk->num) j = i; i++; } @@ -1039,22 +1045,22 @@ { for (i = j - 1; i >= 0; i--) desks.order[i + 1] = desks.order[i]; - desks.order[0] = desk; + desks.order[0] = dsk->num; } } static void -MoveToDeskBottom(unsigned int desk) +MoveToDeskBottom(Desk * dsk) { int i, j; - EobjListStackLower(&desks.desk[desk]->o); + EoLower(dsk); j = -1; i = 0; while (j < 0 && i < (int)Conf.desks.num) { - if (desks.order[i] == desk) + if (desks.order[i] == dsk->num) j = i; i++; } @@ -1064,7 +1070,7 @@ { for (i = j; i < (int)Conf.desks.num - 1; i++) desks.order[i] = desks.order[i + 1]; - desks.order[Conf.desks.num - 1] = desk; + desks.order[Conf.desks.num - 1] = dsk->num; } } @@ -1199,7 +1205,7 @@ dsk->viewable = 1; DeskBackgroundRefresh(dsk); - MoveToDeskTop(dsk->num); + MoveToDeskTop(dsk); desks.previous = desks.current = dsk; @@ -1361,11 +1367,15 @@ static void DeskLower(unsigned int desk) { + Desk *dsk; + if ((desk <= 0) || (desk >= Conf.desks.num)) return; + dsk = _DeskGet(desk); + DeskSwitchStart(); - MoveToDeskBottom(desk); + MoveToDeskBottom(dsk); if (EventDebug(EDBUG_TYPE_DESKS)) Eprintf("DeskLower(%d) %d -> %d\n", desk, desks.current->num, ------------------------------------------------------- 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