From: Enlightenment C. <no...@cv...> - 2006-04-22 13:58:37
|
Enlightenment CVS committal Author : kwo Project : e16 Module : e Dir : e16/e/src Modified Files: ecompmgr.c ecompmgr.h eobj.c eobj.h progress.c Log Message: Fix progress bars with composite enabled. =================================================================== RCS file: /cvs/e/e16/e/src/ecompmgr.c,v retrieving revision 1.113 retrieving revision 1.114 diff -u -3 -r1.113 -r1.114 --- ecompmgr.c 21 Apr 2006 22:52:58 -0000 1.113 +++ ecompmgr.c 22 Apr 2006 13:57:54 -0000 1.114 @@ -1569,6 +1569,15 @@ } } +void +ECompMgrWinDamageArea(EObj * eo, int x __UNUSED__, int y __UNUSED__, + int w __UNUSED__, int h __UNUSED__) +{ + ECmWinInfo *cw = eo->cmhook; + + ECompMgrDamageMergeObject(eo, cw->shape, 0); +} + static void ECompMgrWinConfigure(EObj * eo, XEvent * ev) { =================================================================== RCS file: /cvs/e/e16/e/src/ecompmgr.h,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- ecompmgr.h 6 Apr 2006 21:20:16 -0000 1.28 +++ ecompmgr.h 22 Apr 2006 13:57:54 -0000 1.29 @@ -48,6 +48,8 @@ void ECompMgrWinUnmap(EObj * eo); void ECompMgrWinMoveResize(EObj * eo, int change_xy, int change_wh, int change_bw); +void ECompMgrWinDamageArea(EObj * eo, int x, int y, int w, + int h); void ECompMgrWinReparent(EObj * eo, Desk * dsk, int change_xy); void ECompMgrWinRaise(EObj * eo); void ECompMgrWinLower(EObj * eo); =================================================================== RCS file: /cvs/e/e16/e/src/eobj.c,v retrieving revision 1.70 retrieving revision 1.71 diff -u -3 -r1.70 -r1.71 --- eobj.c 18 Apr 2006 17:57:58 -0000 1.70 +++ eobj.c 22 Apr 2006 13:57:54 -0000 1.71 @@ -410,6 +410,15 @@ } void +EobjDamage(EObj * eo) +{ +#if USE_COMPOSITE + if (eo->cmhook) + ECompMgrWinDamageArea(eo, 0, 0, eo->w, eo->h); +#endif +} + +void EobjReparent(EObj * eo, EObj * dst, int x, int y) { int move; =================================================================== RCS file: /cvs/e/e16/e/src/eobj.h,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- eobj.h 18 Apr 2006 16:26:51 -0000 1.26 +++ eobj.h 22 Apr 2006 13:57:54 -0000 1.27 @@ -143,6 +143,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 EobjDamage(EObj * eo); void EobjReparent(EObj * eo, EObj * dst, int x, int y); int EobjRaise(EObj * eo); int EobjLower(EObj * eo); =================================================================== RCS file: /cvs/e/e16/e/src/progress.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -3 -r1.31 -r1.32 --- progress.c 22 Apr 2006 13:24:51 -0000 1.31 +++ progress.c 22 Apr 2006 13:57:54 -0000 1.32 @@ -67,6 +67,9 @@ ProgressbarDestroy(p); return NULL; } + p->win->fade = 0; + p->n_win->fade = 0; + p->p_win->fade = 0; p->ic = ImageclassFind("PROGRESS_BAR", 1); if (p->ic) @@ -96,6 +99,8 @@ { int i, j, dy; + ProgressbarHide(p); + dy = 2 * p->h; EobjWindowDestroy(p->win); EobjWindowDestroy(p->n_win); @@ -175,8 +180,10 @@ pad->left, pad->top, p->h * 5 - (pad->left + pad->right), p->h - (pad->top + pad->bottom), p->h - (pad->top + pad->bottom), TextclassGetJustification(p->tnc)); + /* Hack - We may not be running in the event loop here */ + EobjDamage(p->n_win); - EFlush(); + EobjsRepaint(); } void @@ -201,7 +208,7 @@ p->h - (pad->top + pad->bottom), p->h - (pad->top + pad->bottom), TextclassGetJustification(p->tnc)); - EFlush(); + EobjsRepaint(); } void |