From ee25f92f87f2fc5bb6ab65023c4515a285535ff4 Mon Sep 17 00:00:00 2001 From: Ulrich-Matthias Schäfer Date: Wed, 4 Jul 2018 18:27:00 +0200 Subject: make TransformBag clone the object before altering --- src/controller.js | 3 +++ src/morph.js | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/controller.js b/src/controller.js index c2a9355..46c1771 100644 --- a/src/controller.js +++ b/src/controller.js @@ -124,6 +124,9 @@ SVG.Spring = SVG.invent ({ c.done = dt == Infinity if(dt == Infinity) return target if(dt == 0) return current + + if (dt > 100) dt = 16 + dt /= 1000 // Get the previous velocity diff --git a/src/morph.js b/src/morph.js index ff902ae..18ed6b5 100644 --- a/src/morph.js +++ b/src/morph.js @@ -158,15 +158,22 @@ SVG.Morphable.TransformBag = SVG.invent({ } } - SVG.Matrix.call(this, obj) + var data = {...(obj || {})} - if (obj && obj.origin) { - obj.originX = obj.origin[0] - obj.originY = obj.origin[1] + if (typeof data.origin == 'string') { + delete data.origin } - this.originX = obj && obj.originX || 0 - this.originY = obj && obj.originY || 0 + SVG.Matrix.call(this, data) + + + if (data.origin) { + data.originX = data.origin[0] + data.originY = data.origin[1] + } + + this.originX = data.originX || 0 + this.originY = data.originY || 0 }, extend: { -- cgit v1.2.3