summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2007-03-06 13:40:22 +0000
committerOliver Bolte <obo@openoffice.org>2007-03-06 13:40:22 +0000
commit7aedfda3c01ea09d25ffc93510378fe5add92da5 (patch)
tree7b04b9d9baed2a42ca1627131b58987184a68759 /svx
parent1cc2d9784efc313f915ff9dd5bc48e7dd0e6ef03 (diff)
INTEGRATION: CWS aw047_SRC680 (1.38.144); FILE MERGED
2007/03/05 14:32:49 aw 1.38.144.1: #i75086# secured TRSetBaseGeometry to work with objects mirrored in X and Y
Diffstat (limited to 'svx')
-rw-r--r--svx/source/svdraw/svdoashp.cxx13
1 files changed, 11 insertions, 2 deletions
diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx
index d1164f52e596..22b63a4695a8 100644
--- a/svx/source/svdraw/svdoashp.cxx
+++ b/svx/source/svdraw/svdoashp.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: svdoashp.cxx,v $
*
- * $Revision: 1.38 $
+ * $Revision: 1.39 $
*
- * last change: $Author: kz $ $Date: 2006-12-12 16:01:14 $
+ * last change: $Author: obo $ $Date: 2007-03-06 14:40:22 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -3714,6 +3714,15 @@ void SdrObjCustomShape::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix,
double fRotate, fShearX;
rMatrix.decompose(aScale, aTranslate, fRotate, fShearX);
+ // #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings
+ // in X and Y which equal a 180 degree rotation. Recognize it and react accordingly
+ if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0))
+ {
+ aScale.setX(fabs(aScale.getX()));
+ aScale.setY(fabs(aScale.getY()));
+ fRotate = fmod(fRotate + F_PI, F_2PI);
+ }
+
// reset object shear and rotations
aGeo.nDrehWink = 0;
aGeo.RecalcSinCos();