Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: ecompmgr.c Log Message: Use extents equal shape for objects without shadow. Correct damage update on shape change. =================================================================== RCS file: /cvs/e/e16/e/src/ecompmgr.c,v retrieving revision 1.154 retrieving revision 1.155 diff -u -3 -r1.154 -r1.155 --- ecompmgr.c 27 May 2007 21:21:32 -0000 1.154 +++ ecompmgr.c 17 Jun 2007 09:35:18 -0000 1.155 @@ -999,6 +999,8 @@ #endif /* ENABLE_SHADOWS */ +static XserverRegion win_shape(EObj * eo); + /* Region of window in screen coordinates, including shadows */ static XserverRegion win_extents(EObj * eo) @@ -1099,14 +1101,21 @@ if (sr.y + sr.height > r.y + r.height) r.height = sr.y + sr.height - r.y; + rgn = ERegionCreateRect(r.x, r.y, r.width, r.height); + goto done; + skip_shadow: #endif + /* No shadow - extents = shape */ + if (cw->shape == None) + cw->shape = win_shape(eo); + rgn = ERegionClone(cw->shape); + + done: D2printf("extents %#lx %d %d %d %d\n", EobjGetXwin(eo), r.x, r.y, r.width, r.height); - rgn = ERegionCreateRect(r.x, r.y, r.width, r.height); - if (EDebug(EDBUG_TYPE_COMPMGR3)) ERegionShow("extents", rgn); @@ -1706,11 +1715,14 @@ ECmWinInfo *cw = eo->cmhook; D1printf("ECompMgrWinChangeShape %#lx\n", EobjGetXwin(eo)); + if (cw->extents == None) + return; ECompMgrDamageMergeObject(eo, cw->extents); - + ECompMgrWinInvalidate(eo, INV_POS); /* Invalidate extents and shape */ + cw->extents = win_extents(eo); + ECompMgrDamageMergeObject(eo, cw->extents); _ECM_SET_CLIP_CHANGED(); - ECompMgrWinInvalidate(eo, INV_SIZE); } void ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs