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; }