X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/42062ddcb82f2d372faafbe7bb1f9a27436f0bbd..45c6e40d4312a3bc53fb0c64574d9e5b1f298193:/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 9be3dae..4cf3d77 100644 --- a/src/editor/modules/documentCanvas/canvas/keyboard.js +++ b/src/editor/modules/documentCanvas/canvas/keyboard.js @@ -44,20 +44,27 @@ handlers.push({key: KEYS.ENTER, event.preventDefault(); var cursor = canvas.getCursor(), position = cursor.getPosition(), - element = position.element, - added; + element = position.element; if(Object.keys(cursor.getPosition()).length === 0) { var currentElement = canvas.getCurrentNodeElement(); if(currentElement) { - canvas.wlxmlDocument.startTransaction(gettext('Splitting text')); - added = currentElement.wlxmlNode.after({ - tagName: currentElement.getWlxmlTag() || 'div', - attrs: {'class': currentElement.getWlxmlClass() || 'p'} + canvas.wlxmlDocument.transaction(function() { + var added = currentElement.wlxmlNode.after({ + tagName: currentElement.getWlxmlTag() || 'div', + attrs: {'class': currentElement.getWlxmlClass() || 'p'} + }); + added.append({text:''}); + return added; + }, { + metadata: { + description: gettext('Splitting text') + }, + success: function(ret) { + canvas.setCurrentElement(utils.findCanvasElement(ret), {caretTo: 'start'}); + } }); - added.append({text:''}); - canvas.wlxmlDocument.endTransaction(); - canvas.setCurrentElement(utils.findCanvasElement(added), {caretTo: 'start'}); + } return; } @@ -68,13 +75,20 @@ handlers.push({key: KEYS.ENTER, element = element.parent(); } - canvas.wlxmlDocument.startTransaction(gettext('Splitting text')); - added = element.wlxmlNode.after( - {tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}} - ); - added.append({text: ''}); - canvas.wlxmlDocument.endTransaction(); - canvas.setCurrentElement(utils.findCanvasElement(added), {caretTo: 'start'}); + canvas.wlxmlDocument.transaction(function() { + var added = element.wlxmlNode.after( + {tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}} + ); + added.append({text: ''}); + return added; + }, { + metadata: { + description: gettext('Splitting text') + }, + success: function(ret) { + canvas.setCurrentElement(utils.findCanvasElement(ret), {caretTo: 'start'}); + } + }); } else { @@ -105,7 +119,11 @@ handlers.push({key: KEYS.ENTER, node.document.transaction(function() { result = position.element.wlxmlNode.breakContent({offset: position.offset}); - }, this, gettext('Splitting text')); + }, { + metadata: { + description: gettext('Splitting text') + } + }); if(result.emptyText) { goto = result.emptyText; @@ -280,10 +298,16 @@ handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE], } if(element) { goto = element.wlxmlNode.mergeContentUp(); - canvas.setCurrentElement(goto.node, {caretTo: goto.offset}); + if(goto) { + canvas.setCurrentElement(goto.node, {caretTo: goto.offset}); + } } event.preventDefault(); } + }, { + metadata: { + description: gettext('Remove text') + } }); } });