diff options
author | Kurt Zenker <kz@openoffice.org> | 2006-12-13 13:49:07 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2006-12-13 13:49:07 +0000 |
commit | cf3ddd36b71a363afe220485764a88776b1274db (patch) | |
tree | 04894118b844eb6c58d2f53363b0a83b5faedde5 /canvas/source | |
parent | c1a79d861a281c3af8a61f9fbac4661a14091a72 (diff) |
INTEGRATION: CWS presfixes09 (1.3.18); FILE MERGED
2006/10/18 14:04:59 thb 1.3.18.6: RESYNC: (1.7-1.8); FILE MERGED
2006/09/15 15:45:40 thb 1.3.18.5: RESYNC: (1.5-1.7); FILE MERGED
2006/04/20 11:15:56 thb 1.3.18.4: RESYNC: (1.4-1.5); FILE MERGED
2006/04/06 20:11:52 thb 1.3.18.3: #i63943# During VCL paint, windows have a hard clip region set (limited to the damaged area). This wreaks havoc when rendering double-buffered content or animations, as only parts of the modified screen gets restored.
2006/03/06 23:18:13 thb 1.3.18.2: RESYNC: (1.3-1.4); FILE MERGED
2006/03/06 21:21:11 thb 1.3.18.1: #i59324# Correctly handling the case of 'empty' ranges now in all canvastools methods (before, we'd happily process empty ranges, yielding rather arbitrary non-empty ones afterwards); improved debug display for VCL canvas sprite count
Diffstat (limited to 'canvas/source')
-rw-r--r-- | canvas/source/vcl/spritecanvashelper.cxx | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/canvas/source/vcl/spritecanvashelper.cxx b/canvas/source/vcl/spritecanvashelper.cxx index a364fd91807e..e8952bf44e9c 100644 --- a/canvas/source/vcl/spritecanvashelper.cxx +++ b/canvas/source/vcl/spritecanvashelper.cxx @@ -4,9 +4,9 @@ * * $RCSfile: spritecanvashelper.cxx,v $ * - * $Revision: 1.8 $ + * $Revision: 1.9 $ * - * last change: $Author: obo $ $Date: 2006-09-17 03:31:39 $ + * last change: $Author: kz $ $Date: 2006-12-13 14:49:07 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -271,6 +271,20 @@ namespace vclcanvas const Size aOutDevSize( rBackOutDev.GetOutputSizePixel() ); const Point aEmptyPoint(0,0); + Window* pTargetWindow = NULL; + if( rOutDev.GetOutDevType() == OUTDEV_WINDOW ) + { + pTargetWindow = &static_cast<Window&>(rOutDev); // TODO(Q3): Evil downcast. + + // we're double-buffered, thus no need for paint area-limiting + // clips. besides that, will interfere with animations (as for + // Window-invalidate repaints, only parts of the window will + // be redrawn otherwise) + const Region aFullWindowRegion( Rectangle(aEmptyPoint, + aOutDevSize) ); + pTargetWindow->ExpandPaintClipRegion(aFullWindowRegion); + } + // TODO(P1): Might be worthwile to track areas of background // changes, too. if( !bUpdateAll && !io_bSurfaceDirty ) @@ -345,10 +359,10 @@ namespace vclcanvas // render requests (calling code might rely on timing, // i.e. assume that things are visible on screen after // updateScreen() returns). - if( rOutDev.GetOutDevType() == OUTDEV_WINDOW ) + if( pTargetWindow ) { - // TODO(Q3): Evil downcast. - static_cast<Window&>(rOutDev).Sync(); + // commit to screen + pTargetWindow->Sync(); } return sal_True; |