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