summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@suse.com>2013-05-07 18:36:01 +0200
committerThorsten Behrens <tbehrens@suse.com>2013-05-07 18:40:35 +0200
commitc5b58f8e82dcf25426088ff2deb555d043c37e3e (patch)
treef77742472b127d7f440bce63c52c51b7ccdb2ef3
parent99a1e8c4a6bc4dd809944a41ac0db1f925959cc2 (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
-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 2fb7a28ef9b6..e513f168a317 100644
--- a/vcl/source/gdi/print2.cxx
+++ b/vcl/source/gdi/print2.cxx
@@ -614,7 +614,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();
}