[Libreoffice-commits] core.git: basegfx/source
Armin Le Grand
alg at apache.org
Sun May 12 07:39:40 PDT 2013
basegfx/source/tools/gradienttools.cxx | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
New commits:
commit ed43421545c86f85b5fc4b9a33be077748fb8487
Author: Armin Le Grand <alg at apache.org>
Date: Tue Aug 14 08:19:40 2012 +0000
Resolves: fdo#49508# #i120539# Fixed visualisation of gradient 'square'
which was broken in OOo3.3
(cherry picked from commit 008bc1d4b8cd47ca9940be00a8cfdcdb1ef85856)
Change-Id: I912b74deb37f9dc09e2ae83977aab180c46bd501
diff --git a/basegfx/source/tools/gradienttools.cxx b/basegfx/source/tools/gradienttools.cxx
index f2e6577..c45c335 100644
--- a/basegfx/source/tools/gradienttools.cxx
+++ b/basegfx/source/tools/gradienttools.cxx
@@ -191,6 +191,16 @@ namespace basegfx
double fTargetOffsetY(rTargetRange.getMinY());
// add object expansion
+ if(bSquare)
+ {
+ const double fOriginalDiag(sqrt((fTargetSizeX * fTargetSizeX) + (fTargetSizeY * fTargetSizeY)));
+ fTargetOffsetX -= (fOriginalDiag - fTargetSizeX) / 2.0;
+ fTargetOffsetY -= (fOriginalDiag - fTargetSizeY) / 2.0;
+ fTargetSizeX = fOriginalDiag;
+ fTargetSizeY = fOriginalDiag;
+ }
+
+ // add object expansion
if(0.0 != fAngle)
{
const double fAbsCos(fabs(cos(fAngle)));
@@ -230,10 +240,7 @@ namespace basegfx
o_rGradientInfo.maTextureTransform.translate(fTargetOffsetX, fTargetOffsetY);
// prepare aspect for texture
- if( bSquare )
- o_rGradientInfo.mfAspectRatio = 1.0; // since we want a square
- else
- o_rGradientInfo.mfAspectRatio = (0.0 != fTargetSizeY) ? fTargetSizeX / fTargetSizeY : 1.0;
+ o_rGradientInfo.mfAspectRatio = (0.0 != fTargetSizeY) ? fTargetSizeX / fTargetSizeY : 1.0;
// build transform from u,v to [0.0 .. 1.0]. As base, use inverse texture transform
o_rGradientInfo.maBackTextureTransform = o_rGradientInfo.maTextureTransform;
More information about the Libreoffice-commits
mailing list