summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2013-04-24 16:15:19 +0200
committerJan Holesovsky <kendy@suse.cz>2013-04-24 16:28:18 +0200
commit617dddda6258d63d7f2307f38322a411670e6ed8 (patch)
treecebd3d0faf97996ab5672b43ba792a3a36952770
parent5ca26caf2ca723c9857b563568dae8a16c9c5962 (diff)
fdo#59259: Suppress the expensive parts when we are only writing to metafile.
When we are launching the printing dialog, we first draw the page using drawinglayer to a metafile, and then render the metafile. Unfortunately, here we did the real operation of allocating large bitmaps, and destroying them again; all that just to throw all that away at the end of the operation. The preview sets the mbOutput to false correctly, so we can just skip the expensive parts. Change-Id: Ice77d83100eba339602bbdf374fec8546d4d1e12
-rw-r--r--vcl/source/gdi/outdev6.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/vcl/source/gdi/outdev6.cxx b/vcl/source/gdi/outdev6.cxx
index 4297e483bce8..c8550490c384 100644
--- a/vcl/source/gdi/outdev6.cxx
+++ b/vcl/source/gdi/outdev6.cxx
@@ -612,6 +612,9 @@ void OutputDevice::DrawTransparent( const GDIMetaFile& rMtf, const Point& rPos,
mpMetaFile->AddAction( new MetaFloatTransparentAction( rMtf, rPos, rSize, rTransparenceGradient ) );
}
+ if ( !IsDeviceOutputNecessary() )
+ return;
+
if( ( rTransparenceGradient.GetStartColor() == aBlack && rTransparenceGradient.GetEndColor() == aBlack ) ||
( mnDrawMode & ( DRAWMODE_NOTRANSPARENCY ) ) )
{