return false; // top level element is unsplittable
}
- var nodes = position.element.data('wlxmlNode').split({offset: position.offset}),
- newEmpty,
- goto,
- gotoOptions;
-
- if(position.offsetAtBeginning)
- newEmpty = nodes.first;
- else if(position.offsetAtEnd)
- newEmpty = nodes.second;
+ //var nodes = position.element.data('wlxmlNode').split({offset: position.offset}),
+ // var nodes = position.element.data('wlxmlNode').transform('split', {offset: position.offset}),
+ // newEmpty,
+ // goto,
+ // gotoOptions;
+
+ // if(position.offsetAtBeginning)
+ // newEmpty = nodes.first;
+ // else if(position.offsetAtEnd)
+ // newEmpty = nodes.second;
- if(newEmpty) {
- goto = newEmpty.append({text: ''});
+ // if(newEmpty) {
+ // //goto = newEmpty.append({text: ''});
+ // gotoOptions = {};
+ // } else {
+ // goto = nodes.second;
+ // gotoOptions = {caretTo: 'start'};
+ // }
+
+ var result = position.element.data('wlxmlNode').transform('rng.breakContent', {offset: position.offset}),
+ goto, gotoOptions;
+ if(result.emptyText) {
+ goto = result.createdEmpty;
gotoOptions = {};
} else {
- goto = nodes.second;
- gotoOptions = {caretTo: 'start'};
+ goto = result.second;
+ gotoOptions = {caretTo: 'start'};
}
canvas.setCurrentElement(utils.findCanvasElement(goto), gotoOptions);
goto;
if(parent.children().length === 1 && parent.children()[0].sameNode(element)) {
if(grandParent && grandParent.children().length === 1) {
- goto = grandParent.append({text: ''});
+ goto = grandParent.data('wlxmlNode').append({text: ''});
} else {
goto = element.getNearestTextElement(direction);
}
- parent.detach();
+ parent.data('wlxmlNode').detach();
} else {
goto = element.getNearestTextElement(direction);
- element.detach();
+ element.data('wlxmlNode').detach();
}
canvas.setCurrentElement(goto, {caretTo: caretTo});
canvas.publisher('contentChanged');