vcl/source/gdi/mapmod.cxx | 6 ++++++ 1 file changed, 6 insertions(+) New commits: commit 0a9b99787c65e49f08b27566d277eab8306cca54 Author: Michael Stahl <mst...@redhat.com> Date: Mon May 18 23:47:43 2015 +0200
vcl: fix the MapMode ctor too to limit precision to 32 bits Change-Id: Ifc27d4bd9225581197332c8e21c476eed5d13eb7 diff --git a/vcl/source/gdi/mapmod.cxx b/vcl/source/gdi/mapmod.cxx index eb61bb7..8607426 100644 --- a/vcl/source/gdi/mapmod.cxx +++ b/vcl/source/gdi/mapmod.cxx @@ -33,6 +33,10 @@ struct MapMode::ImplMapMode sal_uLong mnRefCount; MapUnit meUnit; Point maOrigin; + // NOTE: these Fraction must NOT have more than 32 bits precision + // because ReadFraction / WriteFraction do only 32 bits, so more than + // that cannot be stored in MetaFiles! + // => call ReduceInaccurate whenever setting these Fraction maScaleX; Fraction maScaleY; bool mbSimple; @@ -158,6 +162,8 @@ MapMode::MapMode( MapUnit eUnit, const Point& rLogicOrg, mpImplMapMode->maOrigin = rLogicOrg; mpImplMapMode->maScaleX = rScaleX; mpImplMapMode->maScaleY = rScaleY; + mpImplMapMode->maScaleX.ReduceInaccurate(32); + mpImplMapMode->maScaleY.ReduceInaccurate(32); } MapMode::~MapMode() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits