Enlightenment CVS committal
Author : kwo
Project : e16
Module : e
Dir : e16/e/src
Modified Files:
borders.c dock.c ewmh.c
Log Message:
Fix some EWin list stuff, causing occasional segv.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/borders.c,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -3 -r1.157 -r1.158
--- borders.c 4 Apr 2004 21:32:37 -0000 1.157
+++ borders.c 4 Apr 2004 21:34:16 -0000 1.158
@@ -377,12 +377,14 @@
manplace = 0;
/* adopt the new baby */
ewin = Adopt(win);
+
/* if is an afterstep/windowmaker dock app 0- dock it */
if (Conf.dockapp_support && ewin->docked)
{
DockIt(ewin);
EDBUG_RETURN_;
}
+
/* if set for borderless then dont slide it in */
if ((!ewin->client.mwm_decor_title) && (!ewin->client.mwm_decor_border))
doslide = 0;
@@ -558,9 +560,6 @@
}
}
- /* add it to our list of managed clients */
- AddItem(ewin, "EWIN", ewin->client.win, LIST_TYPE_EWIN);
-
/* if the window asked to be iconified at the start */
if (ewin->iconified)
{
@@ -693,7 +692,6 @@
b = FindItem("DEFAULT", 0, LIST_FINDBY_NAME, LIST_TYPE_BORDER);
}
ewin = AdoptInternal(win, b, type);
- AddItem(ewin, "EWIN", ewin->client.win, LIST_TYPE_EWIN);
if (ewin->desktop < 0)
ewin->desktop = desks.current;
@@ -1175,13 +1173,15 @@
MatchEwinToSnapInfo(ewin);
ICCCM_GetEInfo(ewin);
+ AddItem(ewin, "EWIN", ewin->client.win, LIST_TYPE_EWIN);
+
if (!ewin->border)
EwinSetBorderInit(ewin);
+ EwinSetBorderTo(ewin, NULL);
ICCCM_MatchSize(ewin);
ICCCM_Adopt(ewin);
- EwinSetBorderTo(ewin, NULL);
UngrabX();
if (ewin->shaded)
@@ -1232,15 +1232,17 @@
ICCCM_GetInfo(ewin, 0);
ICCCM_GetShapeInfo(ewin);
ICCCM_GetGeoms(ewin, 0);
-
MatchEwinToSnapInfo(ewin);
+ AddItem(ewin, "EWIN", ewin->client.win, LIST_TYPE_EWIN);
+
if (!ewin->border)
EwinSetBorderInit(ewin);
EwinSetBorderTo(ewin, NULL);
ICCCM_MatchSize(ewin);
ICCCM_Adopt(ewin);
+
UngrabX();
if (ewin->shaded)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/dock.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- dock.c 20 Mar 2004 15:49:05 -0000 1.15
+++ dock.c 4 Apr 2004 21:34:16 -0000 1.16
@@ -53,7 +53,6 @@
ButtonShow(bt);
ButtonFindEmptySpotFor(bt, "DOCK_APP_BUTTON", Conf.dock.dirmode);
- AddItem(ewin, "EWIN", ewin->client.win, LIST_TYPE_EWIN);
AddItem(bt, "DOCK_APP_BUTTON", ewin->client.win, LIST_TYPE_BUTTON);
ButtonEmbedWindow(bt, ewin->client.win);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewmh.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -3 -r1.41 -r1.42
--- ewmh.c 26 Mar 2004 21:21:46 -0000 1.41
+++ ewmh.c 4 Apr 2004 21:34:16 -0000 1.42
@@ -389,7 +389,9 @@
lst = (EWin **) EwinListGetStacking(&num);
/* FIXME: num must be unchanged here! Check! */
if (num != nwin)
- printf("*** ERROR: %s %d\n", __FILE__, __LINE__);
+ printf("*** ERROR: no=%d nn=%d\n", nwin, num);
+ if (num > nwin)
+ wl = Erealloc(wl, num * sizeof(Window));
nwin = 0;
for (i = num - 1; i >= 0; i--)
wl[nwin++] = lst[i]->client.win;
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs