]> source.dussan.org Git - svg.js.git/commitdiff
make sure, that we use the correct startTransform
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Fri, 21 Sep 2018 10:18:43 +0000 (12:18 +0200)
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Fri, 21 Sep 2018 10:18:43 +0000 (12:18 +0200)
src/runner.js

index 2e55a1c50b957ce83d569844fa06eb5f26776416..4348aff244943f8fc512c6a625a9d7d753013f1d 100644 (file)
@@ -698,7 +698,7 @@ SVG.extend(SVG.Runner, {
     let element
     let current
     let currentAngle
-    let u = this.transformId++
+    let startTransform
 
     function setup () {
 
@@ -706,6 +706,8 @@ SVG.extend(SVG.Runner, {
       element = element || this.element()
       origin = origin || getOrigin(transforms, element)
 
+      startTransform = new SVG.Matrix(relative ? undefined : element)
+
       // add the runner to the element so it can merge transformations
       element.addRunner(this)
 
@@ -724,11 +726,9 @@ SVG.extend(SVG.Runner, {
       let {x, y} = new SVG.Point(origin).transform(element._currentTransform(this))
 
       let target = new SVG.Matrix({...transforms, origin: [x, y]})
-      let start = new SVG.Matrix(relative ? undefined : element)
-
-      if (this._isDeclarative && current) {
-        start = current
-      }
+      let start = this._isDeclarative && current
+        ? current
+        : startTransform
 
       if (affine) {
         target = target.decompose(x, y)
@@ -760,12 +760,11 @@ SVG.extend(SVG.Runner, {
       morpher.from(start)
       morpher.to(target)
 
-
       let affineParameters = morpher.at(pos)
       currentAngle = affineParameters.rotate
       current = new SVG.Matrix(affineParameters)
 
-      this.addTransform(current, u)
+      this.addTransform(current)
       return morpher.done()
     }