From 9690a907a006a7deab9a6cb212f00f41753825a1 Mon Sep 17 00:00:00 2001 From: Kim Woelders Date: Sun, 16 Oct 2005 09:33:49 +0000 Subject: [PATCH] Cleanups. SVN revision: 17599 --- src/buttons.c | 5 ++--- src/desktops.c | 5 ++--- src/eobj.c | 8 ++++++-- src/eobj.h | 4 ++++ src/ewins.c | 5 ++--- src/hiwin.c | 2 +- src/slideout.c | 2 +- src/warp.c | 5 ++--- 8 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/buttons.c b/src/buttons.c index 09e8184d..3c6e1757 100644 --- a/src/buttons.c +++ b/src/buttons.c @@ -156,7 +156,7 @@ ButtonCreate(const char *name, int id, ImageClass * iclass, EoSetSticky(b, sticky); EoSetDesk(b, DeskGet(desk)); - EobjInit(EoObj(b), EOBJ_TYPE_BUTTON, None, -100, -100, 50, 50, 0, name); + EoInit(b, EOBJ_TYPE_BUTTON, None, -100, -100, 50, 50, 0, name); EoSetLayer(b, ontop); EoSetShadow(b, 0); @@ -182,8 +182,7 @@ ButtonDestroy(Button * b) while (RemoveItemByPtr(b, LIST_TYPE_BUTTON)); - EobjFini(&b->o); - EDestroyWindow(EoGetWin(b)); + EoFini(b); if (b->iclass) ImageclassDecRefcount(b->iclass); diff --git a/src/desktops.c b/src/desktops.c index 8a6d1fe9..48bae9f0 100644 --- a/src/desktops.c +++ b/src/desktops.c @@ -427,7 +427,7 @@ DeskCreate(int desk, int configure) win = (desk == 0) ? VRoot.win : None; Esnprintf(buf, sizeof(buf), "Desk-%d", desk); - EobjInit(&dsk->o, EOBJ_TYPE_DESK, win, 0, 0, VRoot.w, VRoot.h, 0, buf); + EoInit(dsk, EOBJ_TYPE_DESK, win, 0, 0, VRoot.w, VRoot.h, 0, buf); EventCallbackRegister(EoGetWin(dsk), 0, DeskHandleEvents, dsk); EoSetShadow(dsk, 0); if (desk == 0) @@ -467,8 +467,7 @@ DeskDestroy(Desk * dsk) if (dsk->bg) BackgroundDecRefcount(dsk->bg); - EobjFini(&dsk->o); - EDestroyWindow(EoGetWin(dsk)); + EoFini(dsk); desks.desk[dsk->num] = NULL; Efree(dsk); diff --git a/src/eobj.c b/src/eobj.c index 6c08ce38..f645e8b6 100644 --- a/src/eobj.c +++ b/src/eobj.c @@ -165,6 +165,11 @@ EobjFini(EObj * eo) Eprintf("EobjFini: %#lx %s\n", eo->win, eo->name); EobjListStackDel(eo); + if (!eo->external) + { + EDestroyWindow(eo->win); + eo->gone = 1; + } #if USE_COMPOSITE if (eo->cmhook) ECompMgrWinDel(eo); @@ -219,8 +224,6 @@ EobjWindowCreate(int type, int x, int y, int w, int h, int su, const char *name) void EobjWindowDestroy(EObj * eo) { - EDestroyWindow(eo->win); - eo->gone = 1; EobjDestroy(eo); } @@ -246,6 +249,7 @@ EobjRegister(Window win, int type) EobjInit(eo, type, win, attr.x, attr.y, attr.width, attr.height, 0, NULL); eo->name = ecore_x_icccm_title_get(win); + eo->external = 1; #if 1 /* FIXME - TBD */ if (type == EOBJ_TYPE_EXT) diff --git a/src/eobj.h b/src/eobj.h index 0dfc208e..ee5c76e7 100644 --- a/src/eobj.h +++ b/src/eobj.h @@ -39,6 +39,7 @@ struct _eobj signed char stacked; char sticky; char floating; + unsigned external:1; unsigned shown:1; unsigned gone:1; unsigned noredir:1; /* Do not redirect */ @@ -104,6 +105,9 @@ struct _eobj #define EoSetFade(eo, _x) #endif +#define EoInit(eo, type, win, x, y, w, h, su, name) \ + EobjInit(EoObj(eo), type, win, x, y, w, h, su, name) +#define EoFini(eo) EobjFini(EoObj(eo)); #define EoSync(eo) EobjSync(EoObj(eo)) #define EoMap(eo, raise) EobjMap(EoObj(eo), raise) #define EoUnmap(eo) EobjUnmap(EoObj(eo)) diff --git a/src/ewins.c b/src/ewins.c index 11032d2b..9d390db4 100644 --- a/src/ewins.c +++ b/src/ewins.c @@ -132,7 +132,7 @@ EwinCreate(Window win, int type) ewin->o.stacked = -1; /* Not placed on desk yet */ EoSetDesk(ewin, DesksGetCurrent()); - EobjInit(EoObj(ewin), EOBJ_TYPE_EWIN, frame, -10, -10, -1, -1, 1, NULL); + EoInit(ewin, EOBJ_TYPE_EWIN, frame, -10, -10, -1, -1, 1, NULL); EoSetLayer(ewin, 4); EoSetShadow(ewin, 1); EobjListFocusAdd(&ewin->o, 0); @@ -230,8 +230,7 @@ EwinDestroy(EWin * ewin) EwinCleanup(ewin); EobjListOrderDel(&ewin->o); EobjListFocusDel(&ewin->o); - EobjFini(&ewin->o); - EDestroyWindow(EoGetWin(ewin)); + EoFini(ewin); HintsSetClientList(); diff --git a/src/hiwin.c b/src/hiwin.c index c2f6ddf0..999cbf5c 100644 --- a/src/hiwin.c +++ b/src/hiwin.c @@ -248,7 +248,7 @@ HiwinCreate(void) if (!phi) return NULL; - EobjInit(EoObj(phi), EOBJ_TYPE_MISC, None, 0, 0, 3, 3, 1, "HiWin"); + EoInit(phi, EOBJ_TYPE_MISC, None, 0, 0, 3, 3, 1, "HiWin"); EoSetShadow(phi, 0); EoSetFloating(phi, 1); EoSetLayer(phi, 19); diff --git a/src/slideout.c b/src/slideout.c index 321f02c0..e57c31d0 100644 --- a/src/slideout.c +++ b/src/slideout.c @@ -64,7 +64,7 @@ SlideoutCreate(char *name, char dir) if (!s) return NULL; - EobjInit(EoObj(s), EOBJ_TYPE_MISC, None, -10, -10, 1, 1, 1, name); + EoInit(s, EOBJ_TYPE_MISC, None, -10, -10, 1, 1, 1, name); s->direction = dir; EoSetFade(s, 0); ESelectInput(EoGetWin(s), SLIDEOUT_EVENT_MASK); diff --git a/src/warp.c b/src/warp.c index f624d74f..0bb59851 100644 --- a/src/warp.c +++ b/src/warp.c @@ -76,7 +76,7 @@ WarpFocusWinCreate(void) if (!fw) return fw; - EobjInit(EoObj(fw), EOBJ_TYPE_MISC, None, 0, 0, 1, 1, 1, "Warp"); + EoInit(fw, EOBJ_TYPE_MISC, None, 0, 0, 1, 1, 1, "Warp"); EoSetFloating(fw, 1); EoSetLayer(fw, 20); @@ -99,8 +99,7 @@ static void WarpFocusWinDestroy(WarpFocusWin * fw) { EventCallbackUnregister(EoGetWin(fw), 0, WarpFocusHandleEvent, NULL); - EobjFini(EoObj(fw)); - EDestroyWindow(EoGetWin(fw)); + EoFini(fw); Efree(fw); } #endif