Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h buttons.c eobj.c ewin-ops.c slideout.c 


Log Message:
Fix slideouts with composite.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.451
retrieving revision 1.452
diff -u -3 -r1.451 -r1.452
--- E.h 11 Jun 2005 13:00:22 -0000      1.451
+++ E.h 12 Jun 2005 07:02:01 -0000      1.452
@@ -515,6 +515,7 @@
 #define EOBJ_TYPE_EVENT     4
 #define EOBJ_TYPE_EXT       5
 
+#define EoObj(eo)               (&((eo)->o))
 #define EoGetWin(eo)            ((eo)->o.win)
 #define EoGetName(eo)           ((eo)->o.name)
 #define EoGetType(eo)           ((eo)->o.type)
@@ -527,17 +528,17 @@
 #define EoIsShown(eo)           ((eo)->o.shown)
 #define EoGetDesk(eo)           ((eo)->o.desk)
 #define EoGetLayer(eo)          ((eo)->o.layer)
-#define EoGetPixmap(eo)         EobjGetPixmap(&((eo)->o))
+#define EoGetPixmap(eo)         EobjGetPixmap(EoObj(eo))
 
 #define EoSetName(eo, _x)       (eo)->o.name = (_x)
 #define EoSetSticky(eo, _x)     (eo)->o.sticky = ((_x)?1:0)
-#define EoSetFloating(eo, _f)   EobjSetFloating(&((eo)->o), (_f))
-#define EoSetDesk(eo, _d)       EobjSetDesk(&((eo)->o), (_d))
-#define EoSetLayer(eo, _l)      EobjSetLayer(&((eo)->o), (_l))
+#define EoSetFloating(eo, _f)   EobjSetFloating(EoObj(eo), (_f))
+#define EoSetDesk(eo, _d)       EobjSetDesk(EoObj(eo), (_d))
+#define EoSetLayer(eo, _l)      EobjSetLayer(EoObj(eo), (_l))
 #if USE_COMPOSITE
 #define EoSetOpacity(eo, _o)    (eo)->o.opacity = (_o)
 #define EoGetOpacity(eo)        ((eo)->o.opacity)
-#define EoChangeOpacity(eo, _o) EobjChangeOpacity(&((eo)->o), _o)
+#define EoChangeOpacity(eo, _o) EobjChangeOpacity(EoObj(eo), _o)
 #define EoSetShadow(eo, _x)     (eo)->o.shadow = (_x)
 #define EoGetShadow(eo)         ((eo)->o.shadow)
 #else
@@ -547,15 +548,15 @@
 #define EoGetShadow(eo)         0
 #endif
 
-#define EoMap(eo, raise)                EobjMap(&((eo)->o), raise)
-#define EoUnmap(eo)                     EobjUnmap(&((eo)->o))
-#define EoMove(eo, x, y)                EobjMove(&((eo)->o), x, y)
-#define EoResize(eo, w, h)              EobjResize(&((eo)->o), w, h)
-#define EoMoveResize(eo, x, y, w, h)    EobjMoveResize(&((eo)->o), x, y, w, h)
-#define EoReparent(eo, d, x, y)         EobjReparent(&((eo)->o), d, x, y)
-#define EoRaise(eo)                     EobjRaise(&((eo)->o))
-#define EoLower(eo)                     EobjLower(&((eo)->o))
-#define EoChangeShape(eo)               EobjChangeShape(&((eo)->o))
+#define EoMap(eo, raise)                EobjMap(EoObj(eo), raise)
+#define EoUnmap(eo)                     EobjUnmap(EoObj(eo))
+#define EoMove(eo, x, y)                EobjMove(EoObj(eo), x, y)
+#define EoResize(eo, w, h)              EobjResize(EoObj(eo), w, h)
+#define EoMoveResize(eo, x, y, w, h)    EobjMoveResize(EoObj(eo), x, y, w, h)
+#define EoReparent(eo, d, x, y)         EobjReparent(EoObj(eo), d, x, y)
+#define EoRaise(eo)                     EobjRaise(EoObj(eo))
+#define EoLower(eo)                     EobjLower(EoObj(eo))
+#define EoChangeShape(eo)               EobjChangeShape(EoObj(eo))
 
 typedef struct
 {
@@ -1505,7 +1506,7 @@
 void                EobjMove(EObj * eo, int x, int y);
 void                EobjResize(EObj * eo, int w, int h);
 void                EobjMoveResize(EObj * eo, int x, int y, int w, int h);
-void                EobjReparent(EObj * eo, int desk, int x, int y);
+void                EobjReparent(EObj * eo, EObj * dst, int x, int y);
 int                 EobjRaise(EObj * eo);
 int                 EobjLower(EObj * eo);
 void                EobjChangeShape(EObj * eo);
@@ -2133,8 +2134,8 @@
 EWin               *EwinListStackGetTop(void);
 
 #define EwinListGetAll EwinListStackGet
-#define EwinListFocusRaise(ewin) EobjListFocusRaise(&(ewin->o))
-#define EwinListFocusLower(ewin) EobjListFocusLower(&(ewin->o))
+#define EwinListFocusRaise(ewin) EobjListFocusRaise(EoObj(ewin))
+#define EwinListFocusLower(ewin) EobjListFocusLower(EoObj(ewin))
 
 /* startup.c */
 void                StartupWindowsCreate(void);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/buttons.c,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -3 -r1.64 -r1.65
--- buttons.c   9 Jun 2005 18:28:10 -0000       1.64
+++ buttons.c   12 Jun 2005 07:02:01 -0000      1.65
@@ -243,16 +243,32 @@
 }
 
 void
+ButtonSetSwallowed(Button * b)
+{
+   b->internal = 1;
+   b->default_show = 0;
+   b->flags |= FLAG_FIXED;
+   b->used = 1;
+   b->ref_count++;
+   ButtonCalc(b);
+   ButtonDraw(b);
+   EMapWindow(EoGetWin(b));
+}
+
+void
 ButtonMoveToDesktop(Button * b, int desk)
 {
-   if (desk < 0 || desk >= DesksGetNumber())
-      return;
+   Desk               *d;
 
    if (EoIsSticky(b) && EoGetLayer(b) == 1)
       desk = 0;
 
-   if (desk != EoGetDesk(b))
-      EoReparent(b, desk, EoGetX(b), EoGetY(b));
+   d = DeskGet(desk);
+   if (!d)
+      return;
+
+   if (EoGetDesk(b) != d->num)
+      EoReparent(b, EoObj(d), EoGetX(b), EoGetY(b));
 }
 
 void
@@ -345,17 +361,6 @@
    b->ref_count--;
 }
 
-void
-ButtonSetSwallowed(Button * b)
-{
-   b->internal = 1;
-   b->default_show = 0;
-   b->flags |= FLAG_FIXED;
-   b->used = 1;
-   b->ref_count++;
-   EobjListStackDel(&b->o);
-}
-
 static const char  *
 ButtonGetName(const Button * b)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/eobj.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -3 -r1.34 -r1.35
--- eobj.c      9 Jun 2005 18:28:11 -0000       1.34
+++ eobj.c      12 Jun 2005 07:02:01 -0000      1.35
@@ -349,25 +349,33 @@
 }
 
 void
-EobjReparent(EObj * eo, int desk, int x, int y)
+EobjReparent(EObj * eo, EObj * dst, int x, int y)
 {
-   Desk               *d;
    int                 move;
 
-   d = DeskGet(desk);
-   if (!d)
-      return;
-
    move = x != eo->x || y != eo->y;
    eo->x = x;
    eo->y = y;
 
-   EReparentWindow(eo->win, EoGetWin(d), x, y);
+   EReparentWindow(eo->win, dst->win, x, y);
+   if (dst->type == EOBJ_TYPE_DESK)
+     {
+       Desk               *d = (Desk *) dst;
+
 #if USE_COMPOSITE
-   if (eo->shown && eo->cmhook)
-      ECompMgrWinReparent(eo, desk, move);
+       if (eo->shown && eo->cmhook)
+          ECompMgrWinReparent(eo, d->num, move);
 #endif
-   EobjSetDesk(eo, desk);
+       EobjSetDesk(eo, d->num);
+     }
+   else
+     {
+       EobjListStackDel(eo);
+#if USE_COMPOSITE
+       if (eo->cmhook)
+          ECompMgrWinDel(eo);
+#endif
+     }
 }
 
 int
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewin-ops.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -3 -r1.48 -r1.49
--- ewin-ops.c  11 Jun 2005 08:25:30 -0000      1.48
+++ ewin-ops.c  12 Jun 2005 07:02:01 -0000      1.49
@@ -432,7 +432,7 @@
       ModulesSignal(ESIGNAL_EWIN_CHANGE, ewin);
 
    if (reparent)
-      EoReparent(ewin, desk, x, y);
+      EoReparent(ewin, EoObj(DeskGet(desk)), x, y);
    else
       EoMoveResize(ewin, x, y, w, h);
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/slideout.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- slideout.c  9 Jun 2005 18:28:13 -0000       1.32
+++ slideout.c  12 Jun 2005 07:02:02 -0000      1.33
@@ -25,7 +25,7 @@
 
 typedef struct
 {
-   EObj               *win;
+   EObj                o;
    char                direction;
    int                 num_buttons;
    Button            **button;
@@ -48,14 +48,16 @@
 SlideoutCreate(char *name, char dir)
 {
    Slideout           *s;
+   Window              win;
 
    s = Ecalloc(1, sizeof(Slideout));
    if (!s)
       return NULL;
 
-   s->win = EobjWindowCreate(EOBJ_TYPE_MISC, -10, -10, 1, 1, 1, name);
+   win = ECreateWindow(VRoot.win, -10, -10, 1, 1, 1);
+   EobjInit(EoObj(s), EOBJ_TYPE_MISC, win, -10, -10, 1, 1, name);
    s->direction = dir;
-   EventCallbackRegister(s->win->win, 0, SlideoutHandleEvent, s);
+   EventCallbackRegister(EoGetWin(s), 0, SlideoutHandleEvent, s);
 
    return s;
 }
@@ -78,8 +80,8 @@
    EGetGeometry(win, NULL, NULL, NULL, &w, &h, NULL, NULL);
    XTranslateCoordinates(disp, win, VRoot.win, 0, 0, &x, &y, &dw);
 
-   sw = s->win->w;
-   sh = s->win->h;
+   sw = EoGetW(s);
+   sh = EoGetH(s);
    xx = 0;
    yy = 0;
    switch (s->direction)
@@ -152,60 +154,60 @@
      {
        d = DeskGet(0);
      }
-   EobjReparent(s->win, d->num, xx, yy);
+   EoReparent(s, EoObj(d), xx, yy);
 
    switch (s->direction)
      {
      case 0:
        att.win_gravity = SouthEastGravity;
-       EChangeWindowAttributes(s->win->win, CWWinGravity, &att);
+       EChangeWindowAttributes(EoGetWin(s), CWWinGravity, &att);
        att.win_gravity = NorthWestGravity;
        for (i = 0; i < s->num_buttons; i++)
           EChangeWindowAttributes(ButtonGetWin(s->button[i]),
                                   CWWinGravity, &att);
-       EobjMoveResize(s->win, xx, yy, 1, 1);
+       EobjMoveResize(EoObj(s), xx, yy, 1, 1);
        ESync();
-       EobjMap(s->win, 1);
-       EobjSlideSizeTo(s->win, xx + sw, yy, xx, yy, 0, sh, sw, sh,
+       EobjMap(EoObj(s), 1);
+       EobjSlideSizeTo(EoObj(s), xx + sw, yy, xx, yy, 1, sh, sw, sh,
                        Conf.slidespeedmap);
        break;
      case 1:
        att.win_gravity = NorthWestGravity;
-       EChangeWindowAttributes(s->win->win, CWWinGravity, &att);
+       EChangeWindowAttributes(EoGetWin(s), CWWinGravity, &att);
        att.win_gravity = SouthEastGravity;
        for (i = 0; i < s->num_buttons; i++)
           EChangeWindowAttributes(ButtonGetWin(s->button[i]),
                                   CWWinGravity, &att);
-       EobjMoveResize(s->win, xx, yy, 1, 1);
+       EobjMoveResize(EoObj(s), xx, yy, 1, 1);
        ESync();
-       EobjMap(s->win, 1);
-       EobjSlideSizeTo(s->win, xx, yy, xx, yy, 0, sh, sw, sh,
+       EobjMap(EoObj(s), 1);
+       EobjSlideSizeTo(EoObj(s), xx, yy, xx, yy, 1, sh, sw, sh,
                        Conf.slidespeedmap);
        break;
      case 2:
        att.win_gravity = SouthEastGravity;
-       EChangeWindowAttributes(s->win->win, CWWinGravity, &att);
+       EChangeWindowAttributes(EoGetWin(s), CWWinGravity, &att);
        att.win_gravity = NorthWestGravity;
        for (i = 0; i < s->num_buttons; i++)
           EChangeWindowAttributes(ButtonGetWin(s->button[i]),
                                   CWWinGravity, &att);
-       EobjMoveResize(s->win, xx, yy, 1, 1);
+       EobjMoveResize(EoObj(s), xx, yy, 1, 1);
        ESync();
-       EobjMap(s->win, 1);
-       EobjSlideSizeTo(s->win, xx, yy + sh, xx, yy, sw, 0, sw, sh,
+       EobjMap(EoObj(s), 1);
+       EobjSlideSizeTo(EoObj(s), xx, yy + sh, xx, yy, sw, 1, sw, sh,
                        Conf.slidespeedmap);
        break;
      case 3:
        att.win_gravity = NorthWestGravity;
-       EChangeWindowAttributes(s->win->win, CWWinGravity, &att);
+       EChangeWindowAttributes(EoGetWin(s), CWWinGravity, &att);
        att.win_gravity = SouthEastGravity;
        for (i = 0; i < s->num_buttons; i++)
           EChangeWindowAttributes(ButtonGetWin(s->button[i]),
                                   CWWinGravity, &att);
-       EobjMoveResize(s->win, xx, yy, 1, 1);
+       EobjMoveResize(EoObj(s), xx, yy, 1, 1);
        ESync();
-       EobjMap(s->win, 1);
-       EobjSlideSizeTo(s->win, xx, yy, xx, yy, sw, 0, sw, sh,
+       EobjMap(EoObj(s), 1);
+       EobjSlideSizeTo(EoObj(s), xx, yy, xx, yy, sw, 1, sw, sh,
                        Conf.slidespeedmap);
        break;
      default:
@@ -214,7 +216,7 @@
    s->ref_count++;
    s->context_ewin = ewin;
 
-   GrabPointerSet(s->win->win, ECSR_ROOT, 0);
+   GrabPointerSet(EoGetWin(s), ECSR_ROOT, 0);
 
    Mode_slideouts.active = s;
 }
@@ -226,7 +228,7 @@
       return;
 
    GrabPointerRelease();
-   EobjUnmap(s->win);
+   EoUnmap(s);
    s->context_ewin = NULL;
    s->ref_count--;
    Mode_slideouts.active = NULL;
@@ -269,7 +271,7 @@
          }
      }
 
-   EobjResize(s->win, sw, sh);
+   EoResize(s, sw, sh);
 
    for (i = 0; i < s->num_buttons; i++)
      {
@@ -297,7 +299,7 @@
             break;
          }
      }
-   EShapePropagate(s->win->win);
+   EShapePropagate(EoGetWin(s));
 }
 
 static void
@@ -311,9 +313,8 @@
    s->num_buttons++;
    s->button = Erealloc(s->button, sizeof(Button *) * s->num_buttons);
    s->button[s->num_buttons - 1] = b;
-   EReparentWindow(ButtonGetWin(b), s->win->win, 0, 0);
+   EobjReparent((EObj *) b, EoObj(s), 0, 0);
    ButtonSetSwallowed(b);
-   ButtonShow(b);
    SlideoutCalcSize(s);
 }
 
@@ -326,12 +327,6 @@
 }
 #endif
 
-static const char  *
-SlideoutGetName(Slideout * s)
-{
-   return s->win->name;
-}
-
 static void
 SlideoutCheckButtonEvent(Slideout * s, XEvent * ev)
 {
@@ -341,7 +336,7 @@
    x = ev->xbutton.x;
    y = ev->xbutton.y;
 
-   if (x < 0 || y < 0 || x > s->win->w || y >= s->win->h)
+   if (x < 0 || y < 0 || x > EoGetW(s) || y >= EoGetH(s))
       return;
 
    for (i = 0; i < s->num_buttons; i++)
@@ -423,8 +418,7 @@
          {
          case CONFIG_CLOSE:
             if (slideout)
-               AddItem(slideout, SlideoutGetName(slideout), 0,
-                       LIST_TYPE_SLIDEOUT);
+               AddItem(slideout, EoGetName(slideout), 0, LIST_TYPE_SLIDEOUT);
             goto done;
          case CONFIG_CLASSNAME:
             if (name)




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to