Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ecompmgr.c ecompmgr.h ipc.c moveresize.c settings.c 


Log Message:
Fade on opacity changes.  Enable/disable fading in config dialog. Cleanups.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ecompmgr.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -3 -r1.57 -r1.58
--- ecompmgr.c  6 Sep 2005 23:44:18 -0000       1.57
+++ ecompmgr.c  11 Sep 2005 10:39:16 -0000      1.58
@@ -78,15 +78,14 @@
    Pixmap              pixmap;
    struct
    {
-      int                 class;       /* FIXME - Remove? */
       int                 depth;       /* FIXME - Remove? */
       Visual             *visual;      /* FIXME - Remove? */
       int                 border_width;
    } a;
    int                 rcx, rcy, rcw, rch;
    int                 mode;
-   char                visible;
-   char                damaged;
+   unsigned            damaged:1;
+   unsigned            fading:1;
    Damage              damage;
    Picture             picture;
    Picture             alphaPict;
@@ -964,8 +963,8 @@
      }
 }
 
-void
-ECompMgrWinChangeOpacity(EObj * eo, unsigned int opacity)
+static void
+ECompMgrWinSetOpacity(EObj * eo, unsigned int opacity)
 {
    ECmWinInfo         *cw = eo->cmhook;
    int                 mode;
@@ -975,8 +974,7 @@
 
    cw->opacity = opacity;
 
-   D1printf("ECompMgrWinChangeOpacity: %#lx opacity=%#x\n", eo->win,
-           cw->opacity);
+   D1printf("ECompMgrWinSetOpacity: %#lx opacity=%#x\n", eo->win, cw->opacity);
 
    if (eo->shown)              /* FIXME - ??? */
       /* Extents may be unchanged, however, we must repaint */
@@ -1021,12 +1019,14 @@
    if (cw->opacity == op)
       return;
 
+   cw->fading = 0;
    if (op > cw->opacity)
      {
        if (op - cw->opacity > Conf_compmgr.fading.step)
          {
             ECompMgrWinFadeDoIn(eo, op);
             op = cw->opacity + Conf_compmgr.fading.step;
+            cw->fading = 1;
          }
      }
    else
@@ -1035,27 +1035,44 @@
          {
             ECompMgrWinFadeDoIn(eo, op);
             op = cw->opacity - Conf_compmgr.fading.step;
+            cw->fading = 1;
          }
      }
 
 #if 0
    Eprintf("doECompMgrWinFade %#lx, %#x\n", eo->win, op);
 #endif
-   ECompMgrWinChangeOpacity(eo, op);
+   ECompMgrWinSetOpacity(eo, op);
+}
+
+static void
+ECompMgrWinFade(EObj * eo, unsigned int op_from, unsigned int op_to)
+{
+   ECompMgrWinFadeDoIn(eo, op_to);
+   ECompMgrWinSetOpacity(eo, op_from);
 }
 
 static void
 ECompMgrWinFadeIn(EObj * eo)
 {
-   ECompMgrWinFadeDoIn(eo, eo->opacity);
-   ECompMgrWinChangeOpacity(eo, 0x10000000);
+   ECompMgrWinFade(eo, 0x10000000, eo->opacity);
 }
 
 static void
 ECompMgrWinFadeOut(EObj * eo)
 {
-   ECompMgrWinFadeDoIn(eo, 0x10000000);
-   ECompMgrWinChangeOpacity(eo, eo->opacity);
+   ECompMgrWinFade(eo, eo->opacity, 0x10000000);
+}
+
+void
+ECompMgrWinChangeOpacity(EObj * eo, unsigned int opacity)
+{
+   ECmWinInfo         *cw = eo->cmhook;
+
+   if (Conf_compmgr.fading.enable && eo->fade)
+      ECompMgrWinFade(eo, cw->opacity, opacity);
+   else
+      ECompMgrWinSetOpacity(eo, opacity);
 }
 
 void
@@ -1159,7 +1176,6 @@
 
    cw->damaged = 0;
 
-   cw->a.class = attr.class;   /* FIXME - remove */
    cw->a.depth = attr.depth;
    cw->a.visual = attr.visual;
    cw->a.border_width = attr.border_width;
@@ -1208,7 +1224,7 @@
 #endif
 
    cw->opacity = 0xdeadbeef;
-   ECompMgrWinChangeOpacity(eo, eo->opacity);
+   ECompMgrWinSetOpacity(eo, eo->opacity);
 
    EventCallbackRegister(eo->win, 0, ECompMgrHandleWindowEvent, eo);
 }
@@ -1455,7 +1471,12 @@
      {
        eo = lst[i];
 
-       if (!eo->shown || eo->desk != dsk)
+       cw = eo->cmhook;
+
+       if (!cw)
+          continue;
+
+       if ((!eo->shown && !cw->fading) || eo->desk != dsk)
           continue;
 
        D4printf(" - %#lx desk=%d shown=%d\n", eo->win, eo->desk->num,
@@ -1484,11 +1505,6 @@
             ECompMgrWinSetPicts(&d->o);
          }
 
-       cw = eo->cmhook;
-
-       if (!cw)
-          continue;
-
        D4printf(" - %#lx desk=%d shown=%d dam=%d pict=%#lx\n",
                 eo->win, eo->desk->num, eo->shown, cw->damaged, cw->picture);
 
@@ -1963,6 +1979,7 @@
 ECompMgrConfigGet(cfg_composite * cfg)
 {
    cfg->enable = Conf_compmgr.enable;
+   cfg->fading = Conf_compmgr.fading.enable;
    cfg->shadow = Conf_compmgr.shadows.mode;
 }
 
@@ -2002,6 +2019,8 @@
          }
      }
 
+   Conf_compmgr.fading.enable = cfg->fading;
+
    autosave();
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ecompmgr.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- ecompmgr.h  7 Aug 2005 10:51:07 -0000       1.16
+++ ecompmgr.h  11 Sep 2005 10:39:16 -0000      1.17
@@ -28,6 +28,7 @@
 typedef struct
 {
    char                enable;
+   char                fading;
    int                 shadow;
 } cfg_composite;
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ipc.c,v
retrieving revision 1.232
retrieving revision 1.233
diff -u -3 -r1.232 -r1.233
--- ipc.c       4 Sep 2005 08:10:11 -0000       1.232
+++ ipc.c       11 Sep 2005 10:39:16 -0000      1.233
@@ -1224,7 +1224,7 @@
 
    lst = EobjListStackGet(&num);
 
-   IpcPrintf("Num   window T V  D S F   L     pos       size    C R Name\n");
+   IpcPrintf("Num   window  T V  D S F   L     pos       size    C R Name\n");
    for (i = 0; i < num; i++)
      {
        eo = lst[i];
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/moveresize.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -3 -r1.50 -r1.51
--- moveresize.c        4 Sep 2005 07:27:20 -0000       1.50
+++ moveresize.c        11 Sep 2005 10:39:16 -0000      1.51
@@ -92,6 +92,10 @@
      {
        EwinShapeSet(ewin);
        EwinFloatAt(gwins[i], EoGetX(gwins[i]), EoGetY(gwins[i]));
+       if (Conf.movres.mode_move == 0)
+         {
+            EoChangeOpacity(ewin, OpacityExt(Conf.movres.opacity));
+         }
      }
    Efree(gwins);
    Mode_mr.swapcoord_x = EoGetX(ewin);
@@ -429,10 +433,6 @@
                           EoGetY(ewin1), ewin1->client.w, ewin1->client.h, 0);
          }
        Mode.mode = MODE_MOVE;
-       if (Conf.movres.mode_move == 0)
-         {
-            EoChangeOpacity(ewin, OpacityExt(Conf.movres.opacity));
-         }
      }
 
    dx = Mode.events.x - Mode.events.px;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/settings.c,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -3 -r1.139 -r1.140
--- settings.c  2 Aug 2005 16:50:39 -0000       1.139
+++ settings.c  11 Sep 2005 10:39:16 -0000      1.140
@@ -1197,7 +1197,6 @@
    DialogItemSetFill(di, 1, 0);
    DialogItemSetColSpan(di, 2);
    DialogItemSetText(di, _("Enable Composite"));
-   DialogItemCheckButtonSetState(di, Cfg_composite.enable);
    DialogItemCheckButtonSetPtr(di, &Cfg_composite.enable);
 
    di = DialogAddItem(table, DITEM_SEPARATOR);
@@ -1206,6 +1205,19 @@
    DialogItemSetFill(di, 1, 0);
    DialogItemSeparatorSetOrientation(di, 0);
 
+   di = DialogAddItem(table, DITEM_CHECKBUTTON);
+   DialogItemSetPadding(di, 2, 2, 2, 2);
+   DialogItemSetFill(di, 1, 0);
+   DialogItemSetColSpan(di, 2);
+   DialogItemSetText(di, _("Enable Fading"));
+   DialogItemCheckButtonSetPtr(di, &Cfg_composite.fading);
+
+   di = DialogAddItem(table, DITEM_SEPARATOR);
+   DialogItemSetColSpan(di, 2);
+   DialogItemSetPadding(di, 2, 2, 2, 2);
+   DialogItemSetFill(di, 1, 0);
+   DialogItemSeparatorSetOrientation(di, 0);
+
    radio = di = DialogAddItem(table, DITEM_RADIOBUTTON);
    DialogItemSetPadding(di, 2, 2, 2, 2);
    DialogItemSetFill(di, 1, 0);




-------------------------------------------------------
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
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to