summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2014-03-06 13:32:52 +0000
committertavmjong-free <tavmjong@free.fr>2014-03-06 13:32:52 +0000
commit908626dbefcefb35c8cef0971ca3db2eec06b2d1 (patch)
tree97d7d3ff33fbec7b00fa7a5cecfed26de8607f91 /src
parentRewrite of pattern geometry code. Fix for 1288489. (diff)
downloadinkscape-908626dbefcefb35c8cef0971ca3db2eec06b2d1.tar.gz
inkscape-908626dbefcefb35c8cef0971ca3db2eec06b2d1.zip
Take "preserveAspectRatio" into account in pattern.
(bzr r13121)
Diffstat (limited to 'src')
-rw-r--r--src/sp-pattern.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp
index 62cb0b2a9..e465565c4 100644
--- a/src/sp-pattern.cpp
+++ b/src/sp-pattern.cpp
@@ -606,16 +606,11 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b
// Content to tile (pattern space)
Geom::Affine content2ps;
if (this->viewBox_set) {
- // viewBox to pattern server
- Geom::Rect vb = *pattern_viewBox(this);
- gdouble tmp_x = tile_width / vb.width();
- gdouble tmp_y = tile_height / vb.height();
-
- // FIXME: preserveAspectRatio must be taken into account here too!
- Geom::Affine vb2ps = Geom::Affine(tmp_x, 0.0, 0.0, tmp_y,
- /*tile_x*/ - vb.left() * tmp_x,
- /*tile_y*/ - vb.top() * tmp_y);
- content2ps = vb2ps;
+ // viewBox to pattern server (using SPViewBox)
+ viewBox = *pattern_viewBox(this);
+ c2p.setIdentity();
+ apply_viewbox( pattern_tile );
+ content2ps = c2p;
} else {
// Content to bbox