Fix adding desks, avoid some X-errors, cleanups.
SVN revision: 16133
This commit is contained in:
parent
b7ee094441
commit
4b68000ee2
13
src/E.h
13
src/E.h
|
@ -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);
|
||||
|
|
|
@ -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--;
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue