summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorChristina Rossmanith <ChrRossmanith@web.de>2012-03-17 22:06:22 +0100
committerFridrich Štrba <fridrich.strba@bluewin.ch>2012-03-22 06:48:36 +0100
commit11ccf88eeb8e4148ca532e3a42ddca356ebde811 (patch)
tree8dc5eb025136ab30118c5ebb3d145e6186c79ff4 /filter
parent7d7e2c3636661c52ff708eb7799f481db5f98dfc (diff)
SVG import: keep aspect ratio when transforming viewbox to viewport
Diffstat (limited to 'filter')
-rw-r--r--filter/source/svg/svgreader.cxx9
1 files changed, 5 insertions, 4 deletions
diff --git a/filter/source/svg/svgreader.cxx b/filter/source/svg/svgreader.cxx
index 5d46c7c462aa..cd5da232b1a9 100644
--- a/filter/source/svg/svgreader.cxx
+++ b/filter/source/svg/svgreader.cxx
@@ -293,12 +293,13 @@ struct AnnotatingVisitor
maCurrState.maViewBox.getWidth() != 0.0 &&
maCurrState.maViewBox.getHeight() != 0.0 )
{
- // transform aViewBox into viewport, such that they
- // coincide
+ // transform aViewBox into viewport, keep aspect ratio
aLocalTransform.translate(-maCurrState.maViewBox.getMinX(),
-maCurrState.maViewBox.getMinY());
- aLocalTransform.scale(maCurrState.maViewport.getWidth()/maCurrState.maViewBox.getWidth(),
- maCurrState.maViewport.getHeight()/maCurrState.maViewBox.getHeight());
+ double scaleW = maCurrState.maViewport.getWidth()/maCurrState.maViewBox.getWidth();
+ double scaleH = maCurrState.maViewport.getHeight()/maCurrState.maViewBox.getHeight();
+ double scale = (scaleW < scaleH) ? scaleW : scaleH;
+ aLocalTransform.scale(scale,scale);
}
maCurrState.maCTM = maCurrState.maCTM*maCurrState.maTransform*aLocalTransform;