X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/fc54b1e72b7ed4992bbc4a2ef3ae7f02393d174d..796338e669626012da93ebea5ec7afa482a70ed7:/src/editor/modules/documentCanvas/documentCanvas.js diff --git a/src/editor/modules/documentCanvas/documentCanvas.js b/src/editor/modules/documentCanvas/documentCanvas.js index 03b0cf7..5942d8f 100644 --- a/src/editor/modules/documentCanvas/documentCanvas.js +++ b/src/editor/modules/documentCanvas/documentCanvas.js @@ -14,9 +14,9 @@ var logger = logging.getLogger('documentCanvas'); return function(sandbox) { - var canvasElements; + var canvasElements = []; - sandbox.getPlugins(function(plugin) { + sandbox.getPlugins().forEach(function(plugin) { canvasElements = canvasElements.concat(plugin.canvasElements || []); }); @@ -82,9 +82,12 @@ return function(sandbox) { canvas.setCurrentElement(node); }, onAfterActionExecuted: function(action, ret) { - if(ret && ret instanceof canvas.wlxmlDocument.CaretFragment && ret.isValid()) { + if(ret && ret.isValid() && ret instanceof canvas.wlxmlDocument.NodeFragment) { logger.debug('The action returned a valid fragment'); - canvas.setCurrentElement(ret.node, {caretTo: ret.offset}); + var params = { + caretTo: ret instanceof canvas.wlxmlDocument.CaretFragment ? ret.offset : 'start' + }; + canvas.setCurrentElement(ret.node, params); return; } logger.debug('No valid fragment returned from the action');