From dca89321d40076f796cee637aec2e2b8ffbf08a6 Mon Sep 17 00:00:00 2001 From: JFH <20402845+jfhenon@users.noreply.github.com> Date: Sat, 19 Dec 2020 18:47:15 +0100 Subject: [PATCH] fix issue on rotation undo --- src/svgcanvas/selection.js | 6 +++++- src/svgcanvas/undo.js | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/svgcanvas/selection.js b/src/svgcanvas/selection.js index cde0396a..fcce43e3 100644 --- a/src/svgcanvas/selection.js +++ b/src/svgcanvas/selection.js @@ -402,7 +402,11 @@ export const setRotationAngle = function (val, preventUndo) { // we need to undo it, then redo it so it can be undo-able! :) // TODO: figure out how to make changes to transform list undo-able cross-browser? const newTransform = elem.getAttribute('transform'); - elem.setAttribute('transform', oldTransform); + if (oldTransform) { + elem.setAttribute('transform', oldTransform); + } else { + elem.removeAttribute('transform'); + } selectionContext_.getCanvas().changeSelectedAttribute('transform', newTransform, selectedElements); selectionContext_.getCanvas().call('changed', selectedElements); } diff --git a/src/svgcanvas/undo.js b/src/svgcanvas/undo.js index 69a59a52..71ed9d26 100644 --- a/src/svgcanvas/undo.js +++ b/src/svgcanvas/undo.js @@ -188,7 +188,11 @@ export const changeSelectedAttributeNoUndoMethod = function (attr, newValue, ele // } } else if (attr === '#href') { setHref(elem, newValue); - } else { elem.setAttribute(attr, newValue); } + } else if (newValue) { + elem.setAttribute(attr, newValue); + } else { + elem.removeAttribute(attr); + } // Go into "select" mode for text changes // NOTE: Important that this happens AFTER elem.setAttribute() or else attributes like