X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/75a919da5ba4f18ead0353f0efb2d9198e415edf..90a5dc9b9157cd3c02e9505661b7a22b953fae2e:/src/editor/modules/documentCanvas/canvas/keyboard.js diff --git a/src/editor/modules/documentCanvas/canvas/keyboard.js b/src/editor/modules/documentCanvas/canvas/keyboard.js index f8aca73..18b6cfd 100644 --- a/src/editor/modules/documentCanvas/canvas/keyboard.js +++ b/src/editor/modules/documentCanvas/canvas/keyboard.js @@ -389,6 +389,24 @@ var handleKeyEvent = function(e, s) { }; // todo: whileRemoveWholetext var keyEventHandlers = [ + { + applies: function(e, s) { + return s.type === 'caret' && + s.element.wlxmlNode.parent().is({tagName: 'span'}) && + s.element.wlxmlNode.getText().length === 1 && + s.offset === 1 && + (e.key === KEYS.BACKSPACE); + }, + run: function(e, s) { + var params = {}, + prevTextNode = s.element.canvas.getPreviousTextElement(s.element).wlxmlNode; + e.preventDefault(); + s.element.wlxmlNode.parent().detach(params); + s.canvas.setCurrentElement( + (params.ret && params.ret.mergedTo) || prevTextNode, + {caretTo: params.ret ? params.ret.previousLen : (prevTextNode ? prevTextNode.getText().length : 0)}); + } + }, { applies: function(e, s) { return s.type === 'caret' && (