summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@suse.com>2013-05-07 18:36:01 +0200
committerMiklos Vajna <vmiklos@suse.cz>2013-05-09 07:00:44 +0000
commita10bc9322dd234549a4d061f77df038d89fb5c2a (patch)
tree246019178aa25ce4435fc5b996530d7716a3b60e
parentb8dd48c73c0d6978913e93af8ea8e0fae0b2c190 (diff)
Fix fdo#40421 Take current clip into account for shape bounds.
Seems with the extensive drawinglayer rework, we now get bitmap fills rendered via clip polygon and subsequent bitmap tiles. To get the true bound rect of the current metaaction, clip it against outdev's clip region bounds (as some reasonably cheap best-effort approximation). Change-Id: I4ecf04e2d94da21acc97362a1a65a965c7176077 Reviewed-on: https://gerrit.libreoffice.org/3815 Reviewed-by: Miklos Vajna <vmiklos@suse.cz> Tested-by: Miklos Vajna <vmiklos@suse.cz>
-rw-r--r--vcl/source/gdi/print2.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/vcl/source/gdi/print2.cxx b/vcl/source/gdi/print2.cxx
index 5f7ccadea4d2..3111ba343f24 100644
--- a/vcl/source/gdi/print2.cxx
+++ b/vcl/source/gdi/print2.cxx
@@ -627,7 +627,14 @@ static Rectangle ImplCalcActionBounds( const MetaAction& rAct, const OutputDevic
}
if( !aActionBounds.IsEmpty() )
- return rOut.LogicToPixel( aActionBounds );
+ {
+ // fdo#40421 limit current action's output to clipped area
+ if( rOut.IsClipRegion() )
+ return rOut.LogicToPixel(
+ rOut.GetClipRegion().GetBoundRect().Intersection( aActionBounds ) );
+ else
+ return rOut.LogicToPixel( aActionBounds );
+ }
else
return Rectangle();
}