X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/bec14a088e45d21ac12f9c5e852dd0b7e559d680..2687ec6cbbe8101a4faa232c79f5c1321dcebe6d:/src/editor/plugins/core/core.js diff --git a/src/editor/plugins/core/core.js b/src/editor/plugins/core/core.js index 4c2f4c0..a780227 100644 --- a/src/editor/plugins/core/core.js +++ b/src/editor/plugins/core/core.js @@ -172,13 +172,21 @@ var createWrapTextAction = function(createParams) { description: createParams.description, execute: function(callback, params) { params.fragment.document.transaction(function() { - var parent = params.fragment.startNode.parent(); - return parent.wrapText({ + var parent = params.fragment.startNode.parent(), + doc = params.fragment.document, + wrapper, lastTextNode; + + wrapper = parent.wrapText({ _with: {tagName: 'span', attrs: {'class': createParams.klass}}, offsetStart: params.fragment.startOffset, offsetEnd: params.fragment.endOffset, textNodeIdx: [params.fragment.startNode.getIndex(), params.fragment.endNode.getIndex()] }); + + lastTextNode = wrapper.getLastTextNode(); + if(lastTextNode) { + return doc.createFragment(doc.CaretFragment, {node: lastTextNode, offset: lastTextNode.getText().length}); + } }, { metadata: { description: createParams.description @@ -206,15 +214,16 @@ var createLinkFromSelection = function(callback, params) { dialog.on('execute', function(event) { doc.transaction(function() { - var span = params.fragment.startNode.parent().wrapText({ + var span = action.params.fragment.startNode.parent().wrapText({ _with: {tagName: 'span', attrs: {'class': 'link'}}, offsetStart: params.fragment.startOffset, offsetEnd: params.fragment.endOffset, textNodeIdx: [params.fragment.startNode.getIndex(), params.fragment.endNode.getIndex()] - }); + }), + doc = params.fragment.document; span.setAttr('href', event.formData.href); event.success(); - return span; + return doc.createFragment(doc.CaretFragment, {node: span.contents()[0], offset:0}); }, { metadata: { description: action.getState().description @@ -242,6 +251,7 @@ var editLink = function(callback, params) { doc.transaction(function() { link.setAttr('href', event.formData.href); event.success(); + return params.fragment; }, { metadata: { description: action.getState().description