Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h Makefile.am desktops.c desktops.h edge.c ewin-ops.c 
        ewins.h ewmh.c gnome.c moveresize.c pager.c 
Removed Files:
        areas.c 


Log Message:
Area stuff belongs with desk stuff.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.515
retrieving revision 1.516
diff -u -3 -r1.515 -r1.516
--- E.h 19 Nov 2005 15:47:10 -0000      1.515
+++ E.h 19 Nov 2005 19:32:45 -0000      1.516
@@ -705,19 +705,6 @@
                           const char *restart, const char *quit,
                           const char *fmt, ...);
 
-/* areas.c */
-void                AreaFix(int *ax, int *ay);
-void                SetNewAreaSize(int ax, int ay);
-void                SetAreaSize(int aw, int ah);
-void                GetAreaSize(int *aw, int *ah);
-void                SetCurrentArea(int ax, int ay);
-void                MoveCurrentAreaBy(int ax, int ay);
-void                SetCurrentLinearArea(int a);
-int                 GetCurrentLinearArea(void);
-void                MoveCurrentLinearAreaBy(int a);
-void                EwinMoveToLinearArea(EWin * ewin, int a);
-void                EwinMoveLinearAreaBy(EWin * ewin, int a);
-
 /* arrange.c */
 #define ARRANGE_VERBATIM    0
 #define ARRANGE_BY_SIZE     1
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Makefile.am,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- Makefile.am 19 Nov 2005 15:47:10 -0000      1.60
+++ Makefile.am 19 Nov 2005 19:32:45 -0000      1.61
@@ -18,7 +18,6 @@
        aclass.c                \
        actions.c               \
        alert.c                 \
-       areas.c                 \
        arrange.c               \
        backgrounds.c           \
        backgrounds.h           \
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.197
retrieving revision 1.198
diff -u -3 -r1.197 -r1.198
--- desktops.c  10 Nov 2005 00:09:35 -0000      1.197
+++ desktops.c  19 Nov 2005 19:32:45 -0000      1.198
@@ -573,13 +573,13 @@
 }
 
 void
-DeskGetCurrentArea(int *ax, int *ay)
+DeskCurrentGetArea(int *ax, int *ay)
 {
    DeskGetArea(desks.current, ax, ay);
 }
 
-void
-DeskSetCurrentArea(int ax, int ay)
+static void
+DeskCurrentSetArea(int ax, int ay)
 {
    DeskSetArea(desks.current, ax, ay);
 }
@@ -1340,9 +1340,276 @@
       return;
 
    DeskGoto(EoGetDesk(ewin));
-   SetCurrentArea(ewin->area_x, ewin->area_y);
+   DeskCurrentGotoArea(ewin->area_x, ewin->area_y);
+}
+
+/*
+ * Areas
+ */
+static int          area_w = 3;
+static int          area_h = 3;
+
+void
+DesksFixArea(int *ax, int *ay)
+{
+   if (*ax < 0)
+     {
+       if (Conf.desks.areas_wraparound)
+          *ax = area_w - 1;
+       else
+          *ax = 0;
+     }
+   else if (*ax >= area_w)
+     {
+       if (Conf.desks.areas_wraparound)
+          *ax = 0;
+       else
+          *ax = area_w - 1;
+     }
+
+   if (*ay < 0)
+     {
+       if (Conf.desks.areas_wraparound)
+          *ay = area_h - 1;
+       else
+          *ay = 0;
+     }
+   else if (*ay >= area_h)
+     {
+       if (Conf.desks.areas_wraparound)
+          *ay = 0;
+       else
+          *ay = area_h - 1;
+     }
+}
+
+static int
+AreaXYToLinear(int ax, int ay)
+{
+   DesksFixArea(&ax, &ay);
+   return (ay * area_w) + ax;
+}
+
+static void
+AreaLinearToXY(int a, int *ax, int *ay)
+{
+   if (a < 0)
+      a = 0;
+   else if (a >= (area_w * area_h))
+      a = (area_w * area_h) - 1;
+   *ay = a / area_w;
+   *ax = a - (*ay * area_w);
+}
+
+static void
+SetAreaSize(int aw, int ah)
+{
+   if (aw < 1)
+      aw = 1;
+   if (ah < 1)
+      ah = 1;
+   Conf.desks.areas_nx = area_w = aw;
+   Conf.desks.areas_ny = area_h = ah;
+   HintsSetViewportConfig();
+   EdgeWindowsShow();
+   ModulesSignal(ESIGNAL_AREA_CONFIGURED, NULL);
+}
+
+void
+DesksGetAreaSize(int *aw, int *ah)
+{
+   *aw = area_w;
+   *ah = area_h;
+}
+
+static void
+SetNewAreaSize(int ax, int ay)
+{
+
+   int                 a, b, i, num;
+   EWin               *const *lst;
+
+   if (ax <= 0)
+      return;
+   if (ay <= 0)
+      return;
+
+   DesksGetAreaSize(&a, &b);
+   if ((a == ax) && (b == ay))
+      return;
+
+   SetAreaSize(ax, ay);
+
+   lst = EwinListGetAll(&num);
+   for (i = 0; i < num; i++)
+     {
+       if (!EoIsSticky(lst[i]))
+         {
+            if (lst[i]->area_x >= ax)
+               EwinMoveToArea(lst[i], ax - 1, lst[i]->area_x);
+            if (lst[i]->area_y >= ay)
+               EwinMoveToArea(lst[i], lst[i]->area_x, ay - 1);
+         }
+     }
+
+   DeskCurrentGetArea(&a, &b);
+   if (a >= ax)
+     {
+       DeskCurrentGotoArea(ax - 1, b);
+       DeskCurrentGetArea(&a, &b);
+     }
+   if (b >= ay)
+      DeskCurrentGotoArea(a, ay - 1);
+}
+
+static void
+SetCurrentLinearArea(int a)
+{
+   int                 ax, ay;
+
+   AreaLinearToXY(a, &ax, &ay);
+   DeskCurrentGotoArea(ax, ay);
 }
 
+static int
+GetCurrentLinearArea(void)
+{
+   int                 ax, ay;
+
+   DeskCurrentGetArea(&ax, &ay);
+
+   return AreaXYToLinear(ax, ay);
+}
+
+static void
+MoveCurrentLinearAreaBy(int a)
+{
+   SetCurrentLinearArea(GetCurrentLinearArea() + a);
+}
+
+void
+DeskCurrentGotoArea(int ax, int ay)
+{
+   EWin               *const *lst, *ewin;
+   int                 i, num, dx, dy, pax, pay;
+
+   if ((Mode.mode == MODE_RESIZE) || (Mode.mode == MODE_RESIZE_H)
+       || (Mode.mode == MODE_RESIZE_V))
+      return;
+
+   DesksFixArea(&ax, &ay);
+   DeskCurrentGetArea(&pax, &pay);
+
+   if (ax == pax && ay == pay)
+      return;
+
+   if (EventDebug(EDBUG_TYPE_DESKS))
+      Eprintf("DeskCurrentGotoArea %d,%d\n", ax, ay);
+
+   ModulesSignal(ESIGNAL_AREA_SWITCH_START, NULL);
+
+   dx = VRoot.w * (ax - pax);
+   dy = VRoot.h * (ay - pay);
+
+   if (dx < 0)
+      SoundPlay("SOUND_MOVE_AREA_LEFT");
+   else if (dx > 0)
+      SoundPlay("SOUND_MOVE_AREA_RIGHT");
+   else if (dy < 0)
+      SoundPlay("SOUND_MOVE_AREA_UP");
+   else if (dy > 0)
+      SoundPlay("SOUND_MOVE_AREA_DOWN");
+
+   ActionsSuspend();
+
+   /* remove lots of event masks from windows.. we dont want to bother */
+   /* handling events as a result of our playing wiht windows */
+   DeskSwitchStart();
+
+   /* set the current area up in out data structs */
+   DeskCurrentSetArea(ax, ay);
+
+   /* move all the windows around */
+   lst = EwinListGetAll(&num);
+   if (Conf.desks.slidein)
+     {
+       int                 wnum = 0;
+       EObj              **wl = NULL;
+
+       /* create the list of windwos to move */
+       for (i = 0; i < num; i++)
+         {
+            ewin = lst[i];
+            if (EoIsSticky(ewin) || ewin->state.iconified)
+               continue;
+            if (EoGetDesk(ewin) != DesksGetCurrent() && !EoIsFloating(ewin))
+               continue;
+
+            if (EoIsFloating(ewin) && Conf.movres.mode_move == 0)
+               continue;
+
+            wnum++;
+            wl = Erealloc(wl, sizeof(EObj *) * wnum);
+            wl[wnum - 1] = &ewin->o;
+         }
+
+       /* slide them */
+       if (wl)
+         {
+            EobjsSlideBy(wl, wnum, -dx, -dy, Conf.desks.slidespeed);
+            Efree(wl);
+            EobjsRepaint();
+         }
+     }
+
+   /* move all windows to their final positions */
+   Mode.move.check = 0;
+   for (i = 0; i < num; i++)
+     {
+       ewin = lst[i];
+       if (EwinIsTransientChild(ewin))
+          continue;
+       if (EoGetDesk(ewin) != DesksGetCurrent() && !EoIsFloating(ewin))
+          continue;
+
+       if (EoIsSticky(ewin) ||
+           (EoIsFloating(ewin) && Conf.movres.mode_move == 0) ||
+           (!ewin->state.iconified && Conf.desks.slidein))
+          EwinMove(ewin, EoGetX(ewin), EoGetY(ewin));
+       else
+          EwinMove(ewin, EoGetX(ewin) - dx, EoGetY(ewin) - dy);
+     }
+   Mode.move.check = 1;
+
+   if (!Conf.desks.slidein)
+      EobjsRepaint();
+
+   /* set hints up for it */
+   HintsSetDesktopViewport();
+
+   ActionsResume();
+
+   /* re-focus on a new ewin on that new desktop area */
+   DeskSwitchDone();
+
+   ModulesSignal(ESIGNAL_AREA_SWITCH_DONE, DesksGetCurrent());
+
+   /* update which "edge flip resistance" detector windows are visible */
+   EdgeWindowsShow();
+}
+
+void
+DeskCurrentMoveAreaBy(int dx, int dy)
+{
+   int                 ax, ay;
+
+   DeskCurrentGetArea(&ax, &ay);
+   DeskCurrentGotoArea(ax + dx, ay + dy);
+}
+
+/*
+ * Actions, events
+ */
 static char         sentpress = 0;
 
 static void
@@ -2136,7 +2403,7 @@
       tmp_edge_flip = 0;
    else
       tmp_edge_flip = 1;
-   GetAreaSize(&tmp_area_x, &tmp_area_y);
+   DesksGetAreaSize(&tmp_area_x, &tmp_area_y);
    tmp_area_y = 9 - tmp_area_y;
 
    d = tmp_area_dialog = DialogCreate("CONFIGURE_AREA");
@@ -2358,7 +2625,7 @@
        p += len;
      }
 
-   DeskGetCurrentArea(&ax, &ay);
+   DeskCurrentGetArea(&ax, &ay);
 
    if (!p || cmd[0] == '?')
      {
@@ -2376,13 +2643,13 @@
    else if (!strncmp(cmd, "goto", 2))
      {
        sscanf(params, "%*s %i %i", &ax, &ay);
-       SetCurrentArea(ax, ay);
+       DeskCurrentGotoArea(ax, ay);
      }
    else if (!strncmp(cmd, "move", 2))
      {
        dx = dy = 0;
        sscanf(params, "%*s %i %i", &dx, &dy);
-       MoveCurrentAreaBy(dx, dy);
+       DeskCurrentMoveAreaBy(dx, dy);
      }
    else if (!strncmp(cmd, "lgoto", 2))
      {
@@ -2453,7 +2720,7 @@
 {
    int                 ax, ay;
 
-   GetAreaSize(&ax, &ay);
+   DesksGetAreaSize(&ax, &ay);
    SetNewAreaSize(atoi(value), ay);
 }
 
@@ -2462,7 +2729,7 @@
 {
    int                 ax, ay;
 
-   GetAreaSize(&ax, &ay);
+   DesksGetAreaSize(&ax, &ay);
    SetNewAreaSize(ax, atoi(value));
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- desktops.h  30 Oct 2005 19:40:49 -0000      1.10
+++ desktops.h  19 Nov 2005 19:32:45 -0000      1.11
@@ -58,25 +58,30 @@
 void                DeskSetArea(Desk * dsk, int ax, int ay);
 int                 DeskIsViewable(const Desk * dsk);
 void                DeskSetDirtyStack(Desk * dsk, EObj * eo);
-
 void                DeskRefresh(Desk * dsk);
 void                DeskAssignBg(unsigned int desk, Background * bg);
 void                DeskSetBg(Desk * dsk, Background * bg, int refresh);
-Desk               *DesktopAt(int x, int y);
-void                DeskSwitchStart(void);
-void                DeskSwitchDone(void);
 void                DeskGoto(Desk * dsk);
 void                DeskGotoNum(unsigned int desk);
+void                DeskRestack(Desk * dsk);
+
+void                DeskCurrentGetArea(int *ax, int *ay);
+void                DeskCurrentGotoArea(int ax, int ay);
+void                DeskCurrentMoveAreaBy(int ax, int ay);
+
 void                DeskGotoByEwin(EWin * ewin);
 
-void                DeskRestack(Desk * dsk);
+void                DeskSwitchStart(void);
+void                DeskSwitchDone(void);
 
 unsigned int        DesksGetNumber(void);
 Desk               *DesksGetCurrent(void);
+Desk               *DesktopAt(int x, int y);
 unsigned int        DesksGetCurrentNum(void);
 void                DesksSetCurrent(Desk * dsk);
-void                DeskGetCurrentArea(int *ax, int *ay);
-void                DeskSetCurrentArea(int ax, int ay);
+void                DesksGetAreaSize(int *aw, int *ah);
 void                DesksClear(void);
 
+void                DesksFixArea(int *ax, int *ay);
+
 #endif /* _DESKTOPS_H_ */
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/edge.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -3 -r1.24 -r1.25
--- edge.c      30 Oct 2005 19:40:49 -0000      1.24
+++ edge.c      19 Nov 2005 19:32:45 -0000      1.25
@@ -52,8 +52,8 @@
    if (ewin && ewin->state.fullscreen)
       return;
 
-   DeskGetCurrentArea(&ax, &ay);
-   GetAreaSize(&aw, &ah);
+   DeskCurrentGetArea(&ax, &ay);
+   DesksGetAreaSize(&aw, &ah);
    dx = 0;
    dy = 0;
    dax = 0;
@@ -97,7 +97,7 @@
    Mode.events.y += dy;
    EWarpPointer(VRoot.win, Mode.events.x, Mode.events.y);
    Mode.flipp = 1;
-   MoveCurrentAreaBy(dax, day);
+   DeskCurrentMoveAreaBy(dax, day);
    Mode.flipp = 0;
    Mode.events.px = Mode.events.x;
    Mode.events.py = Mode.events.y;
@@ -205,8 +205,8 @@
        EventCallbackRegister(w3->win, 0, EdgeHandleEvents, (void *)2);
        EventCallbackRegister(w4->win, 0, EdgeHandleEvents, (void *)3);
      }
-   DeskGetCurrentArea(&cx, &cy);
-   GetAreaSize(&ax, &ay);
+   DeskCurrentGetArea(&cx, &cy);
+   DesksGetAreaSize(&ax, &ay);
 
    if (cx == 0 && !Conf.desks.areas_wraparound)
       EobjUnmap(w1);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewin-ops.c,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -3 -r1.81 -r1.82
--- ewin-ops.c  19 Nov 2005 15:47:10 -0000      1.81
+++ ewin-ops.c  19 Nov 2005 19:32:45 -0000      1.82
@@ -275,7 +275,7 @@
 
    ax = (ewin->vx + EoGetW(ewin) / 2) / EoGetW(dsk);
    ay = (ewin->vy + EoGetH(ewin) / 2) / EoGetH(dsk);
-   AreaFix(&ax, &ay);
+   DesksFixArea(&ax, &ay);
    if (ax != ewin->area_x || ay != ewin->area_y)
      {
        ewin->area_x = ax;
@@ -1418,7 +1418,7 @@
 void
 EwinMoveToArea(EWin * ewin, int ax, int ay)
 {
-   AreaFix(&ax, &ay);
+   DesksFixArea(&ax, &ay);
    EwinMove(ewin, EoGetX(ewin) + (VRoot.w * (ax - ewin->area_x)),
            EoGetY(ewin) + (VRoot.h * (ay - ewin->area_y)));
 }
@@ -1806,6 +1806,21 @@
 
 #if 0                          /* Unused */
 void
+EwinMoveToLinearArea(EWin * ewin, int a)
+{
+   int                 ax, ay;
+
+   AreaLinearToXY(a, &ax, &ay);
+   EwinMoveToArea(ewin, ax, ay);
+}
+
+void
+EwinMoveLinearAreaBy(EWin * ewin, int a)
+{
+   EwinMoveToLinearArea(ewin, AreaXYToLinear(ewin->area_x, ewin->area_y) + a);
+}
+
+void
 EwinOpMoveToArea(EWin * ewin, int x, int y)
 {
    EwinMoveToArea(ewin, x, y);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- ewins.h     19 Nov 2005 15:47:10 -0000      1.33
+++ ewins.h     19 Nov 2005 19:32:45 -0000      1.34
@@ -337,6 +337,8 @@
 void                EwinShade(EWin * ewin);
 void                EwinUnShade(EWin * ewin);
 void                EwinMoveToArea(EWin * ewin, int ax, int ay);
+void                EwinMoveToLinearArea(EWin * ewin, int a);
+void                EwinMoveLinearAreaBy(EWin * ewin, int a);
 
 void                EwinOpClose(EWin * ewin, int source);
 void                EwinOpActivate(EWin * ewin, int source);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewmh.c,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -3 -r1.98 -r1.99
--- ewmh.c      14 Nov 2005 19:28:01 -0000      1.98
+++ ewmh.c      19 Nov 2005 19:32:45 -0000      1.99
@@ -221,7 +221,7 @@
 {
    int                 ax, ay;
 
-   GetAreaSize(&ax, &ay);
+   DesksGetAreaSize(&ax, &ay);
    ecore_x_netwm_desk_size_set(VRoot.win, ax * VRoot.w, ay * VRoot.h);
 }
 
@@ -827,7 +827,7 @@
      }
    else if (ev->message_type == ECORE_X_ATOM_NET_DESKTOP_VIEWPORT)
      {
-       SetCurrentArea(ev->data.l[0] / VRoot.w, ev->data.l[1] / VRoot.h);
+       DeskCurrentGotoArea(ev->data.l[0] / VRoot.w, ev->data.l[1] / VRoot.h);
        goto done;
      }
    else if (ev->message_type == ECORE_X_ATOM_NET_SHOWING_DESKTOP)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/gnome.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- gnome.c     12 Nov 2005 19:55:42 -0000      1.60
+++ gnome.c     19 Nov 2005 19:32:45 -0000      1.61
@@ -561,7 +561,7 @@
 
    if (!atom_set)
       atom_set = XInternAtom(disp, XA_WIN_AREA, False);
-   DeskGetCurrentArea(&ax, &ay);
+   DeskCurrentGetArea(&ax, &ay);
    val[0] = ax;
    val[1] = ay;
    ecore_x_window_prop_card32_set(VRoot.win, atom_set, val, 2);
@@ -613,7 +613,7 @@
 
    if (!atom_set)
       atom_set = XInternAtom(disp, XA_WIN_AREA_COUNT, False);
-   GetAreaSize(&ax, &ay);
+   DesksGetAreaSize(&ax, &ay);
    val[0] = ax;
    val[1] = ay;
    ecore_x_window_prop_card32_set(VRoot.win, atom_set, val, 2);
@@ -765,7 +765,7 @@
 
    if (event->message_type == a2)
      {
-       SetCurrentArea(event->data.l[0], event->data.l[1]);
+       DeskCurrentGotoArea(event->data.l[0], event->data.l[1]);
        return;
      }
    if (event->message_type == a3)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/moveresize.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -3 -r1.56 -r1.57
--- moveresize.c        19 Nov 2005 15:47:10 -0000      1.56
+++ moveresize.c        19 Nov 2005 19:32:45 -0000      1.57
@@ -236,7 +236,7 @@
    if (Mode_mr.mode > 0)
       EGrabServer();
 
-   DeskGetCurrentArea(&ax, &ay);
+   DeskCurrentGetArea(&ax, &ay);
 
    /* Redraw any windows that were in "move mode" */
    lst =
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/pager.c,v
retrieving revision 1.186
retrieving revision 1.187
diff -u -3 -r1.186 -r1.187
--- pager.c     19 Nov 2005 15:47:10 -0000      1.186
+++ pager.c     19 Nov 2005 19:32:45 -0000      1.187
@@ -208,7 +208,7 @@
    if (Mode.mode != MODE_NONE)
       return;
 
-   DeskGetCurrentArea(&cx, &cy);
+   DeskCurrentGetArea(&cx, &cy);
    ww = p->dw;
    hh = p->dh;
    xx = cx * ww;
@@ -337,7 +337,7 @@
    int                 i, num, update_screen_included, update_screen_only;
 
    p->update_phase = 0;
-   GetAreaSize(&ax, &ay);
+   DesksGetAreaSize(&ax, &ay);
    DeskGetArea(p->dsk, &cx, &cy);
    vx = cx * VRoot.w;
    vy = cy * VRoot.h;
@@ -471,7 +471,7 @@
 
    ewin = p->ewin;
 
-   GetAreaSize(&ax, &ay);
+   DesksGetAreaSize(&ax, &ay);
 
    aspect = ((double)VRoot.w) / ((double)VRoot.h);
    ICCCM_SetSizeConstraints(ewin, 10 * ax, 8 * ay, 320 * ax, 240 * ay,
@@ -567,7 +567,7 @@
    if ((w == p->w && h == p->h) || w <= 1 || h <= 1)
       return;
 
-   GetAreaSize(&ax, &ay);
+   DesksGetAreaSize(&ax, &ay);
 
    if (p->pmap != None)
       EFreePixmap(p->pmap);
@@ -662,7 +662,7 @@
        /* no snapshots ? first time ? make a row on the bottom left up */
        int                 ax, ay;
 
-       GetAreaSize(&ax, &ay);
+       DesksGetAreaSize(&ax, &ay);
        w = ((48 * VRoot.w) / VRoot.h) * ax;
        h = 48 * ay;
        EwinResize(ewin, w, h); /* Does layout */
@@ -1360,12 +1360,12 @@
        DeskGoto(p->dsk);
        if (p->dsk != DesksGetCurrent())
           SoundPlay("SOUND_DESKTOP_SHUT");
-       SetCurrentArea(px / p->dw, py / p->dh);
+       DeskCurrentGotoArea(px / p->dw, py / p->dh);
      }
    else if (button == Conf_pagers.win_button)
      {
        DeskGoto(p->dsk);
-       SetCurrentArea(px / p->dw, py / p->dh);
+       DeskCurrentGotoArea(px / p->dw, py / p->dh);
        ewin = EwinInPagerAt(p, px, py);
        if (ewin)
          {




-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to