X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/f2a4c98c8681e58fb9ee794129ce66ec0b06f0be..dc8e2e1f8da0f76030d4a4d3c2acf432c9896779:/src/editor/modules/documentCanvas/canvas/wlxmlListener.js?ds=sidebyside diff --git a/src/editor/modules/documentCanvas/canvas/wlxmlListener.js b/src/editor/modules/documentCanvas/canvas/wlxmlListener.js index c5deabf..ae1cee1 100644 --- a/src/editor/modules/documentCanvas/canvas/wlxmlListener.js +++ b/src/editor/modules/documentCanvas/canvas/wlxmlListener.js @@ -39,8 +39,9 @@ var handlers = { nodeTagChange: function(event) { var canvasNode = utils.findCanvasElement(event.meta.node); canvasNode.setWlxmlTag(event.meta.newTagName); + canvasNode.data('wlxmlNode', event.meta.node); }, - nodeAdded: function(event) { + nodeAdded: function(event, checkForExistence) { if(event.meta.node.isRoot()) { this.canvas.reloadRoot(); return; @@ -57,23 +58,26 @@ var handlers = { referenceAction = 'after'; } - actionArg = utils.findCanvasElement(event.meta.node) || event.meta.node; + actionArg = (checkForExistence && utils.findCanvasElement(event.meta.node)) || event.meta.node; referenceElement[referenceAction](actionArg); }, nodeMoved: function(event) { - return handlers.nodeAdded(event); + return handlers.nodeAdded(event, true); }, nodeDetached: function(event) { var canvasNode = utils.findCanvasElementInParent(event.meta.node, event.meta.parent); canvasNode.detach(); }, nodeTextChange: function(event) { + //console.log('wlxmlListener: ' + event.meta.node.getText()); var canvasElement = utils.findCanvasElement(event.meta.node), toSet = event.meta.node.getText(); if(toSet === '') { toSet = utils.unicode.ZWS; } - canvasElement.setText(toSet); + if(toSet !== canvasElement.getText()) { + canvasElement.setText(toSet); + } } };