if(selection.getRangeAt(0).collapsed) {\r
\r
} else {\r
+ var textNodeIdx;\r
+ var parent = $(selection.anchorNode).parent();\r
var offsetStart = selection.anchorOffset;\r
var offsetEnd = selection.focusOffset;\r
- if(offsetStart > offsetEnd) {\r
- var tmp = offsetStart;\r
- offsetStart = offsetEnd;\r
- offsetEnd = tmp;\r
+ \r
+ if(selection.anchorNode === selection.focusNode) {\r
+ if(offsetStart > offsetEnd) {\r
+ var tmp = offsetStart;\r
+ offsetStart = offsetEnd;\r
+ offsetEnd = tmp;\r
+ }\r
+ textNodeIdx = parent.contents().index($(selection.anchorNode));\r
+ } else {\r
+ if(parent.contents().index($(selection.anchorNode)) > parent.contents().index($(selection.focusNode))) {\r
+ offsetStart = selection.focusOffset;\r
+ offsetEnd = selection.anchorOffset;\r
+ }\r
+ textNodeIdx = [parent.contents().index($(selection.anchorNode)), parent.contents().index($(selection.focusNode))];\r
}\r
+ \r
var wrapper = canvasNode.create({tag: wlxmlTag, klass: wlxmlClass});\r
- this.canvas.nodeWrap({inside: canvasNode.create($(selection.anchorNode).parent()),\r
+ this.canvas.nodeWrap({inside: canvasNode.create(parent),\r
_with: wrapper,\r
offsetStart: offsetStart,\r
- offsetEnd: offsetEnd\r
+ offsetEnd: offsetEnd,\r
+ textNodeIdx: textNodeIdx\r
});\r
this.selectNode(wrapper, {movecaret: 'end'});\r
}\r
\r
if(pos.isAtEnd) {\r
newNode = canvasNode.create({tag: pos.parentNode.attr('wlxml-tag'), klass: pos.parentNode.attr('wlxml-class')});\r
- this.canvas.nodeInsertAfter({node: newNode, after: canvas.getNodeById(pos.parentNode.attr('id'))});\r
+ this.canvas.nodeInsertAfter({node: newNode, after: this.canvas.getNodeById(pos.parentNode.attr('id'))});\r
} else {\r
newNode = this.canvas.nodeSplit({node: contextNode, textNodeIdx: pos.textNodeIndex, offset: pos.textNodeOffset});\r
}\r
\r
if(command === 'createList') {\r
var node = canvasNode.create(pos.parentNode);\r
- if(window.getSelection().getRangeAt().collapsed && this.canvas.nodeInsideList({node: node})) {\r
+ if(window.getSelection().getRangeAt(0).collapsed && this.canvas.nodeInsideList({node: node})) {\r
this.canvas.listRemove({pointer: node});\r
this.selectNode(node, {movecaret: 'end'});\r
this.sandbox.publish('contentChanged');\r
}\r
else {\r
- if(!this.canvas.nodeInsideList({node: node})) {\r
+ //if(!this.canvas.nodeInsideList({node: node})) {\r
this.canvas.listCreate({start: node, end: canvasNode.create(pos.focusNode), type: meta});\r
this.selectNode(node, {movecaret: 'end'});\r
this.sandbox.publish('contentChanged');\r
- }\r
+ //}\r
}\r
}\r
\r