editor: improving onAfterActionExecuted canvas handler - handle actions returning...
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 12 May 2014 08:25:42 +0000 (10:25 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 12 May 2014 08:52:00 +0000 (10:52 +0200)
src/editor/modules/documentCanvas/documentCanvas.js

index 2cb3fa1..5942d8f 100644 (file)
@@ -82,9 +82,12 @@ return function(sandbox) {
             canvas.setCurrentElement(node);
         },
         onAfterActionExecuted: function(action, ret) {
             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');
                 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');
                 return;
             }
             logger.debug('No valid fragment returned from the action');