Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: E.h ecompmgr.c ecompmgr.h eobj.c ewins.c iconify.c moveresize.c Log Message: Handle transparent iconbox shape change with composite enabled. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v retrieving revision 1.418 retrieving revision 1.419 diff -u -3 -r1.418 -r1.419 --- E.h 1 May 2005 22:26:00 -0000 1.418 +++ E.h 2 May 2005 22:10:39 -0000 1.419 @@ -561,6 +561,7 @@ #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 EoChangeShape(eo) EobjChangeShape(&((eo)->o)) typedef struct { @@ -1541,6 +1542,7 @@ 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 EobjChangeShape(EObj * eo); #if USE_COMPOSITE Pixmap EobjGetPixmap(const EObj * eo); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ecompmgr.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- ecompmgr.c 1 May 2005 22:26:03 -0000 1.25 +++ ecompmgr.c 2 May 2005 22:10:58 -0000 1.26 @@ -1228,6 +1228,20 @@ /* FIXME - Check if stacking was changed */ } +void +ECompMgrWinChangeShape(EObj * eo) +{ + ECmWinInfo *cw = eo->cmhook; + + if (cw->extents != None) + { + ECompMgrDamageMerge(eo->desk, cw->extents, 1); + cw->extents = None; + } + + ECompMgrWinInvalidate(eo, INV_SIZE); +} + static void finish_destroy_win(EObj * eo, Bool gone) { @@ -1683,7 +1697,7 @@ return; } -#if 0 /* FIXME - Need this? */ +#if 1 /* FIXME - Need this? */ static void ECompMgrRootExpose(void *prm __UNUSED__, XEvent * ev) { @@ -2060,8 +2074,9 @@ break; case Expose: -#if 0 /* FIXME - Need this? */ - ECompMgrRootExpose(prm, ev); +#if 1 /* FIXME - Need this? */ + if (Conf_compmgr.shadow != ECM_SHADOWS_OFF) + ECompMgrRootExpose(prm, ev); #endif break; } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ecompmgr.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- ecompmgr.h 1 May 2005 22:26:03 -0000 1.9 +++ ecompmgr.h 2 May 2005 22:10:58 -0000 1.10 @@ -40,6 +40,7 @@ void ECompMgrWinMoveResize(EObj * eo, int change_xy, int change_wh, int change_bw); void ECompMgrWinReparent(EObj * eo, int desk, int change_xy); +void ECompMgrWinChangeShape(EObj * eo); void ECompMgrWinChangeOpacity(EObj * eo, unsigned int opacity); Pixmap ECompMgrWinGetPixmap(const EObj * eo); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/eobj.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- eobj.c 1 May 2005 22:26:03 -0000 1.24 +++ eobj.c 2 May 2005 22:10:59 -0000 1.25 @@ -369,6 +369,17 @@ EobjSetDesk(eo, desk); } +void +EobjChangeShape(EObj * eo) +{ +#if USE_COMPOSITE + if (eo->shown && eo->cmhook) + ECompMgrWinChangeShape(eo); +#else + eo = NULL; +#endif +} + #if USE_COMPOSITE Pixmap EobjGetPixmap(const EObj * eo) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v retrieving revision 1.53 retrieving revision 1.54 diff -u -3 -r1.53 -r1.54 --- ewins.c 1 May 2005 13:29:53 -0000 1.53 +++ ewins.c 2 May 2005 22:10:59 -0000 1.54 @@ -1259,6 +1259,9 @@ SyncBorderToEwin(ewin); if (ewin->border == b) EwinPropagateShapes(ewin); +#if 0 /* FIXME - Here? */ + EoChangeShape(ewin); +#endif } static void =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/iconify.c,v retrieving revision 1.140 retrieving revision 1.141 diff -u -3 -r1.140 -r1.141 --- iconify.c 3 Apr 2005 15:46:42 -0000 1.140 +++ iconify.c 2 May 2005 22:10:59 -0000 1.141 @@ -715,7 +715,10 @@ ib = SelectIconboxForEwin(ewin); if (ib && ib->animate && !ewin->st.showingdesk) - IB_Animate(0, ewin, ib->ewin); + { + CheckEvent(); + IB_Animate(0, ewin, ib->ewin); + } } static void @@ -1963,6 +1966,8 @@ PropagateShapes(ib->win); ICCCM_GetShapeInfo(ib->ewin); EwinPropagateShapes(ib->ewin); + if (ib->nobg) + EoChangeShape(ib->ewin); Mode.queue_up = pq; } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/moveresize.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- moveresize.c 1 May 2005 22:26:03 -0000 1.37 +++ moveresize.c 2 May 2005 22:11:01 -0000 1.38 @@ -126,7 +126,9 @@ d = DesktopAt(Mode.x, Mode.y); if (Conf.movres.mode_move == 0) - EoChangeOpacity(ewin, ewin->ewmh.opacity); + { + EoChangeOpacity(ewin, ewin->ewmh.opacity); + } for (i = 0; i < num; i++) { if ((EoIsFloating(gwins[i])) || (Conf.movres.mode_move > 0)) @@ -417,7 +419,9 @@ } Mode.mode = MODE_MOVE; if (Conf.movres.mode_move == 0) - EoChangeOpacity(ewin, OpacityExt(Conf.movres.opacity)); + { + EoChangeOpacity(ewin, OpacityExt(Conf.movres.opacity)); + } } dx = Mode.x - Mode.px; ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs