fix issue with undo because this.elem was overwritten with node.remove()
This commit is contained in:
@@ -573,18 +573,19 @@ export default {
|
||||
},
|
||||
elementChanged (opts) {
|
||||
let elem = opts.elems[0];
|
||||
if (elem && elem.tagName === 'svg' && elem.id === 'svgcontent') {
|
||||
if (!elem) return;
|
||||
if (elem.tagName === 'svg' && elem.id === 'svgcontent') {
|
||||
// Update svgcontent (can change on import)
|
||||
svgcontent = elem;
|
||||
init();
|
||||
}
|
||||
|
||||
// Has marker, so change offset
|
||||
if (elem && (
|
||||
if (
|
||||
elem.getAttribute('marker-start') ||
|
||||
elem.getAttribute('marker-mid') ||
|
||||
elem.getAttribute('marker-end')
|
||||
)) {
|
||||
) {
|
||||
const start = elem.getAttribute('marker-start');
|
||||
const mid = elem.getAttribute('marker-mid');
|
||||
const end = elem.getAttribute('marker-end');
|
||||
|
||||
@@ -223,7 +223,7 @@ export class InsertElementCommand extends Command {
|
||||
}
|
||||
|
||||
this.parent = this.elem.parentNode;
|
||||
this.elem = this.elem.remove();
|
||||
this.elem.remove();
|
||||
|
||||
if (handler) {
|
||||
handler.handleHistoryEvent(HistoryEventTypes.AFTER_UNAPPLY, this);
|
||||
@@ -280,7 +280,7 @@ export class RemoveElementCommand extends Command {
|
||||
|
||||
removeElementFromListMap(this.elem);
|
||||
this.parent = this.elem.parentNode;
|
||||
this.elem = this.elem.remove();
|
||||
this.elem.remove();
|
||||
|
||||
if (handler) {
|
||||
handler.handleHistoryEvent(HistoryEventTypes.AFTER_APPLY, this);
|
||||
|
||||
@@ -516,7 +516,7 @@ const undoMgr = canvas.undoMgr = new UndoManager({
|
||||
} else if (!isApply) {
|
||||
restoreRefElems(cmd.elem);
|
||||
}
|
||||
if (cmd.elem.tagName === 'use') {
|
||||
if (cmd.elem && cmd.elem.tagName === 'use') {
|
||||
setUseData(cmd.elem);
|
||||
}
|
||||
} else if (cmdType === ChangeElementCommand.type()) {
|
||||
|
||||
Reference in New Issue
Block a user