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

Reply via email to