Author: alg
Date: Fri Apr 25 12:56:19 2014
New Revision: 1590014
URL: http://svn.apache.org/r1590014
Log:
i124703 adapt coordinate range from ms relative control points to aoo relative
control points
Modified:
openoffice/trunk/main/oox/source/drawingml/customshapeproperties.cxx
Modified: openoffice/trunk/main/oox/source/drawingml/customshapeproperties.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/oox/source/drawingml/customshapeproperties.cxx?rev=1590014&r1=1590013&r2=1590014&view=diff
==============================================================================
--- openoffice/trunk/main/oox/source/drawingml/customshapeproperties.cxx
(original)
+++ openoffice/trunk/main/oox/source/drawingml/customshapeproperties.cxx Fri
Apr 25 12:56:19 2014
@@ -31,6 +31,7 @@
#include <com/sun/star/graphic/XGraphicTransformer.hpp>
#include <com/sun/star/drawing/XShape.hpp>
#include <com/sun/star/drawing/XEnhancedCustomShapeDefaulter.hpp>
+#include <basegfx/numeric/ftools.hxx>
using rtl::OUString;
using namespace ::oox::core;
@@ -194,7 +195,15 @@ void CustomShapeProperties::pushToPropSe
if ( (
nAdjustmentIndex >= 0 ) && ( nAdjustmentIndex < aAdjustmentSeq.getLength() ) )
{
EnhancedCustomShapeAdjustmentValue aAdjustmentVal;
-
aAdjustmentVal.Value <<= (*aIter).maFormula.toInt32();
+
+ sal_Int32
nValue((*aIter).maFormula.toInt32());
+
+ // #124703# The ms control point
coordinates are relative to the
+ // object center in the range [-50000 ..
50000] while our customshapes
+ // use a range from [0 .. 21600], so adapt
the value as needed
+ nValue = basegfx::fround((double(nValue) +
50000.0) * (21600.0 / 100000.0));
+
+
aAdjustmentVal.Value <<= nValue;
aAdjustmentVal.State = PropertyState_DIRECT_VALUE;
aAdjustmentSeq[ nAdjustmentIndex ] = aAdjustmentVal;
}