From c761cb68b7ff27b736a5661abf2c88ea5aeb5a79 Mon Sep 17 00:00:00 2001 From: Tiago Fonseca Date: Wed, 4 Oct 2017 12:15:43 +0100 Subject: [PATCH] correct import of paths with several "M/m" and "Z/z" --- editor/svgutils.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/editor/svgutils.js b/editor/svgutils.js index e01916e6..1a2a93e4 100644 --- a/editor/svgutils.js +++ b/editor/svgutils.js @@ -1256,6 +1256,10 @@ svgedit.utilities.convertPath = function(path, toRel) { switch (type) { case 1: // z,Z closepath (Z/z) d += 'z'; + if (last_m && !toRel) { + curx = last_m[0]; + cury = last_m[1]; + } break; case 12: // absolute horizontal line (H) x -= curx; @@ -1292,12 +1296,6 @@ svgedit.utilities.convertPath = function(path, toRel) { y -= cury; case 5: // relative line (l) case 3: // relative move (m) - // If the last segment was a "z", this must be relative to - if (last_m && segList.getItem(i-1).pathSegType === 1 && !toRel) { - curx = last_m[0]; - cury = last_m[1]; - } - case 19: // relative smooth quad (t) if (toRel) { curx += x; @@ -1308,7 +1306,7 @@ svgedit.utilities.convertPath = function(path, toRel) { curx = x; cury = y; } - if (type === 3) {last_m = [curx, cury];} + if (type === 2 || type === 3) {last_m = [curx, cury];} d += pathDSegment(letter,[[x, y]]); break;