Fix adding desks, avoid some X-errors, cleanups.

SVN revision: 16133
This commit is contained in:
Kim Woelders 2005-08-13 16:23:59 +00:00
parent b7ee094441
commit 4b68000ee2
5 changed files with 32 additions and 29 deletions

13
src/E.h
View File

@ -1142,13 +1142,8 @@ void DeskSetDirtyStack(int desk);
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 DeskHide(int num);
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);

View File

@ -159,9 +159,7 @@ ButtonDestroy(Button * b)
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--;

View File

@ -390,7 +390,10 @@ DeskConfigure(Desk * d)
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 @@ DeskDestroy(Desk * d)
if (d->bg)
BackgroundDecRefcount(d->bg);
EDestroyWindow(EoGetWin(d));
EobjFini(&d->o);
EDestroyWindow(EoGetWin(d));
desks.desk[d->num] = NULL;
Efree(d);
@ -609,6 +611,20 @@ DesksSetCurrent(int desk)
desks.current = desk;
}
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)
{
@ -839,20 +855,6 @@ DeskRefresh(int desk)
BackgroundGetPixmap(bg), BackgroundGetColor(bg));
}
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)
{

View File

@ -436,7 +436,6 @@ DeskBackgroundPictureFree(Desk * d)
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 @@ ECompMgrDeskChanged(int desk)
D1printf("ECompMgrDeskChanged: desk=%d\n", desk);
DeskBackgroundPictureFree(d);
ECompMgrDamageAll();
}
#if ENABLE_SHADOWS
@ -1935,6 +1935,9 @@ ECompMgrStop(void)
XCompositeUnredirectSubwindows(disp, VRoot.win, CompositeRedirectManual);
EventCallbackUnregister(VRoot.win, 0, ECompMgrHandleRootEvent, NULL);
if (Conf_compmgr.shadow != ECM_SHADOWS_OFF)
DesksClear();
}
void

View File

@ -219,6 +219,7 @@ EwinDestroy(EWin * ewin)
EobjListOrderDel(&ewin->o);
EobjListFocusDel(&ewin->o);
EobjFini(&ewin->o);
EDestroyWindow(EoGetWin(ewin));
HintsSetClientList();
@ -244,8 +245,6 @@ EwinDestroy(EWin * ewin)
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)