From: Jan Szejko Date: Tue, 28 Feb 2017 15:47:12 +0000 (+0100) Subject: fix some zero-width space weirdness X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/80171129ff588251385ba80b64a8d2fd203176de?ds=inline fix some zero-width space weirdness (cherry picked from commit e32eab0) --- diff --git a/src/editor/modules/documentCanvas/canvas/canvas.js b/src/editor/modules/documentCanvas/canvas/canvas.js index 2776edb..de9f20e 100644 --- a/src/editor/modules/documentCanvas/canvas/canvas.js +++ b/src/editor/modules/documentCanvas/canvas/canvas.js @@ -269,7 +269,10 @@ $.extend(Canvas.prototype, Backbone.Events, { if(mutation.target.data === '') { mutation.target.data = utils.unicode.ZWS; } - else if(mutation.oldValue === utils.unicode.ZWS) { + if(mutation.target.data === mutation.oldValue) { + return; // shouldn't happen, but better be safe + } + if(mutation.oldValue === utils.unicode.ZWS) { mutation.target.data = mutation.target.data.replace(utils.unicode.ZWS, ''); canvas._moveCaretToTextElement(canvas.getDocumentElement(mutation.target), 'end'); } diff --git a/src/editor/modules/documentCanvas/canvas/documentElement.js b/src/editor/modules/documentCanvas/canvas/documentElement.js index a1965cd..daa37ad 100644 --- a/src/editor/modules/documentCanvas/canvas/documentElement.js +++ b/src/editor/modules/documentCanvas/canvas/documentElement.js @@ -278,7 +278,7 @@ $.extend(DocumentTextElement.prototype, { if(text === '') { text = utils.unicode.ZWS; } - if(text !== this.getText()) { + if(text !== this.dom.contents()[0].data) { this.dom.contents()[0].data = text; } }, diff --git a/src/editor/modules/documentCanvas/canvas/keyboard.js b/src/editor/modules/documentCanvas/canvas/keyboard.js index 147ca58..924a880 100644 --- a/src/editor/modules/documentCanvas/canvas/keyboard.js +++ b/src/editor/modules/documentCanvas/canvas/keyboard.js @@ -247,11 +247,12 @@ var keyEventHandlers = [ element = s.canvas.getNearestTextElement('below', s.element); } + e.preventDefault(); + if(!element) { return; } - var parent = element.wlxmlNode.parent(); if(element.wlxmlNode.getIndex() === 0 && parent.isContextRoot() && (!parent.is('item') || parent.getIndex() === 0)) { // Don't even try to do anything at the edge of a context root, except for non-first items @@ -259,8 +260,6 @@ var keyEventHandlers = [ return; } - e.preventDefault(); - s.canvas.wlxmlDocument.transaction(function() { if(element.wlxmlNode.getIndex() === 0) { goto = element.wlxmlNode.parent().moveUp();