vcl/source/gdi/outdev4.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
New commits: commit 0156a3c3ce5359b19b05248801571a56d320c2a8 Author: Chris Sherlock <chris.sherloc...@gmail.com> Date: Thu Apr 10 01:29:53 2014 +1000 Check if polygon is a rectangle when drawing gradient DrawGradient should check to see if the polygon is a rectangle before adding the gradient to the metafile. If it's a rectangle, we are currently unnecessarily adding XGRAD_SEQ_(BEGIN|END) comment records. Change-Id: I38aef322469f45403ed105d971d7e1d1441ba6a0 diff --git a/vcl/source/gdi/outdev4.cxx b/vcl/source/gdi/outdev4.cxx index b4b8041..1840797 100644 --- a/vcl/source/gdi/outdev4.cxx +++ b/vcl/source/gdi/outdev4.cxx @@ -862,12 +862,20 @@ void OutputDevice::DrawGradient( const PolyPolygon& rPolyPoly, if( mpMetaFile ) { - mpMetaFile->AddAction( new MetaCommentAction( "XGRAD_SEQ_BEGIN" ) ); - mpMetaFile->AddAction( new MetaGradientExAction( rPolyPoly, rGradient ) ); + if ( rPolyPoly.IsRect() ) + { + const Rectangle aBoundRect( rPolyPoly.GetBoundRect() ); + mpMetaFile->AddAction( new MetaGradientAction( aBoundRect, aGradient ) ); + } + else + { + mpMetaFile->AddAction( new MetaCommentAction( "XGRAD_SEQ_BEGIN" ) ); + mpMetaFile->AddAction( new MetaGradientExAction( rPolyPoly, rGradient ) ); - ClipAndDrawGradientMetafile ( rGradient, rPolyPoly ); + ClipAndDrawGradientMetafile ( rGradient, rPolyPoly ); - mpMetaFile->AddAction( new MetaCommentAction( "XGRAD_SEQ_END" ) ); + mpMetaFile->AddAction( new MetaCommentAction( "XGRAD_SEQ_END" ) ); + } } if( !IsDeviceOutputNecessary() || ImplIsRecordLayout() ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits