Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        alert.c borders.c config.c desktops.c ewins.c theme.c xwin.h 


Log Message:
Fix segv's, X-errors, memleak, wrapping.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/alert.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -3 -r1.45 -r1.46
--- alert.c     16 Jul 2005 16:57:35 -0000      1.45
+++ alert.c     21 Aug 2005 21:00:54 -0000      1.46
@@ -301,7 +301,7 @@
    XGrabServer(dd);
    XSync(dd, False);
 
-   for (i = 0; i < 600; i += 40)
+   for (i = 40; i < 600; i += 40)
      {
        ww = i;
        hh = (i * 440) / 600;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/borders.c,v
retrieving revision 1.273
retrieving revision 1.274
diff -u -3 -r1.273 -r1.274
--- borders.c   20 Aug 2005 13:55:50 -0000      1.273
+++ borders.c   21 Aug 2005 21:00:54 -0000      1.274
@@ -875,6 +875,7 @@
 {
    EWin               *ewin = wbit->ewin;
    int                 part = wbit - ewin->bits;
+   int                 left = wbit->left;
 
    GrabPointerRelease();
 
@@ -887,11 +888,12 @@
 #endif
    BorderWinpartChange(ewin, part, 0);
 
-   if (wbit->win == Mode.events.last_bpress && !wbit->left &&
+   /* Beware! Actions may destroy the current border */
+   wbit->left = 0;
+
+   if (wbit->win == Mode.events.last_bpress && !left &&
        ewin->border->part[part].aclass)
       ActionclassEvent(ewin->border->part[part].aclass, ev, ewin);
-
-   wbit->left = 0;
 }
 
 static void
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/config.c,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -3 -r1.136 -r1.137
--- config.c    21 Aug 2005 13:21:47 -0000      1.136
+++ config.c    21 Aug 2005 21:00:54 -0000      1.137
@@ -130,7 +130,7 @@
                  if (so == s)  /* Skip empty lines */
                     break;
                case_eol:
-                 *so++ = '\0'; /* Terminate and return */
+                 *so = '\0';   /* Terminate and return */
                  goto done;
               case '\r':       /* Ignore */
                  break;
@@ -169,6 +169,17 @@
  done:
    bufptr = si;
 
+   /* Strip trailing whitespace */
+   si = so;
+   for (; so > s; so--)
+     {
+       ch = so[-1];
+       if (ch != ' ' && ch != '\t')
+          break;
+     }
+   if (so != si)
+      *so = '\0';
+
    if (EventDebug(EDBUG_TYPE_CONFIG))
       Eprintf("GetLine %s\n", s);
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -3 -r1.171 -r1.172
--- desktops.c  21 Aug 2005 13:21:48 -0000      1.171
+++ desktops.c  21 Aug 2005 21:00:55 -0000      1.172
@@ -530,8 +530,16 @@
 void
 DeskGetArea(int desk, int *ax, int *ay)
 {
-   *ax = _DeskGet(desk)->current_area_x;
-   *ay = _DeskGet(desk)->current_area_y;
+   Desk               *d;
+
+   d = _DeskGet(desk);
+   if (!d)
+     {
+       *ax = *ay = 0;
+       return;
+     }
+   *ax = d->current_area_x;
+   *ay = d->current_area_y;
 }
 
 void
@@ -1654,7 +1662,7 @@
        ic = ImageclassFind("SETTINGS_DESKTOP_AREA", 0);
        if (ic)
           ImageclassApply(ic, win, w, h, 0, 0, STATE_NORMAL, 0, ST_UNKNWN);
-       for (i = 0; i < Conf.desks.num; i++)
+       for (i = 0; i < ENLIGHTENMENT_CONF_NUM_DESKTOPS; i++)
           wins[i] = 0;
        called = 1;
      }
@@ -1667,7 +1675,7 @@
             Pixmap              pmap;
 
             wins[i] = ECreateWindow(win, 0, 0, 64, 48, 0);
-            XSetWindowBorderWidth(disp, wins[i], 1);
+            ESetWindowBorderWidth(wins[i], 1);
             pmap = ECreatePixmap(wins[i], 64, 48, VRoot.depth);
             ESetWindowBackgroundPixmap(wins[i], pmap);
 
@@ -1693,17 +1701,17 @@
        num = tmp_desktops - 1;
        if (num < 1)
           num = 1;
-       ERaiseWindow(wins[i]);
        EMoveWindow(wins[i], (i * (w - 64 - 2)) / num,
                    (i * (h - 48 - 2)) / num);
+       ERaiseWindow(wins[i]);
        EMapWindow(wins[i]);
      }
 
    for (i = tmp_desktops; i < Conf.desks.num; i++)
      {
+       if (!wins[i])
+          continue;
        EUnmapWindow(wins[i]);
-       EDestroyWindow(wins[i]);
-       wins[i] = None;
      }
 
    if (tmp_desktops > 1)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -3 -r1.99 -r1.100
--- ewins.c     21 Aug 2005 13:21:48 -0000      1.99
+++ ewins.c     21 Aug 2005 21:00:55 -0000      1.100
@@ -161,7 +161,7 @@
    if (!EwinIsInternal(ewin))
      {
        XShapeSelectInput(disp, win, ShapeNotifyMask);
-       XSetWindowBorderWidth(disp, win, 0);
+       ESetWindowBorderWidth(win, 0);
        ewin->client.bw = 0;
      }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/theme.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -3 -r1.51 -r1.52
--- theme.c     16 Jul 2005 16:57:44 -0000      1.51
+++ theme.c     21 Aug 2005 21:00:55 -0000      1.52
@@ -413,6 +413,8 @@
       Efree(Conf.theme.name);
    Conf.theme.name = fullfileof(theme);
 
+   if (Mode.theme.path)
+      Efree(Mode.theme.path);
    Mode.theme.path = theme;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/xwin.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- xwin.h      20 Aug 2005 13:55:51 -0000      1.4
+++ xwin.h      21 Aug 2005 21:00:55 -0000      1.5
@@ -85,6 +85,7 @@
 #define ESelectInput(win, mask) XSelectInput(disp, win, mask)
 #define EGetWindowAttributes(win, attr) XGetWindowAttributes(disp, win, attr)
 #define EChangeWindowAttributes(win, mask, attr) XChangeWindowAttributes(disp, 
win, mask, attr)
+#define ESetWindowBorderWidth(win, bw) XSetWindowBorderWidth(disp, win, bw)
 #define ERaiseWindow(win) XRaiseWindow(disp, win)
 #define ELowerWindow(win) XLowerWindow(disp, win)
 #define EClearWindow(win) XClearWindow(disp, win)




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to