if(Object.keys(cursor.getPosition()).length === 0) {
var currentElement = canvas.getCurrentNodeElement();
- if(currentElement) {
+ if(currentElement && !currentElement.wlxmlNode.isRoot()) {
canvas.wlxmlDocument.transaction(function() {
var added = currentElement.wlxmlNode.after({
- tagName: currentElement.getWlxmlTag() || 'div',
- attrs: {'class': currentElement.getWlxmlClass() || 'p'}
+ tagName: currentElement.wlxmlNode.getTagName() || 'div',
+ attrs: {'class': currentElement.wlxmlNode.getClass() || 'p'}
});
added.append({text:''});
return added;
description: gettext('Splitting text')
},
success: function(ret) {
- canvas.setCurrentElement(utils.findCanvasElement(ret), {caretTo: 'start'});
+ canvas.setCurrentElement(utils.getElementForNode(ret), {caretTo: 'start'});
}
});
canvas.wlxmlDocument.transaction(function() {
var added = element.wlxmlNode.after(
- {tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}}
+ {tagName: element.wlxmlNode.getTagName() || 'div', attrs: {'class': element.wlxmlNode.getClass() || 'p'}}
);
added.append({text: ''});
return added;
description: gettext('Splitting text')
},
success: function(ret) {
- canvas.setCurrentElement(utils.findCanvasElement(ret), {caretTo: 'start'});
+ canvas.setCurrentElement(utils.getElementForNode(ret), {caretTo: 'start'});
}
});
return false; // top level element is unsplittable
}
- //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: ''});
- // gotoOptions = {};
- // } else {
- // goto = nodes.second;
- // gotoOptions = {caretTo: 'start'};
- // }
var node = position.element.wlxmlNode,
result, goto, gotoOptions;
gotoOptions = {caretTo: 'start'};
}
- canvas.setCurrentElement(utils.findCanvasElement(goto), gotoOptions);
+ canvas.setCurrentElement(utils.getElementForNode(goto), gotoOptions);
}
}
}
direction = 'below';
caretTo = 'start';
}
- var el = canvas.getDocumentElement(utils.nearestInDocumentOrder('[document-text-element]', direction, element.dom()[0]));
+ var el = canvas.getDocumentElement(utils.nearestInDocumentOrder('[document-text-element]', direction, element.dom[0]));
if(el) {
canvas.setCurrentElement(el, {caretTo: caretTo});
}
if(direction === 'above') {
if(start.offsetAtBeginning) {
- goto = start.element.getNearestTextElement('above');
+ goto = canvas.getNearestTextElement('above', start.element);
caretTo = 'end';
} else {
goto = start.element;
}
} else {
if(end.offsetAtEnd) {
- goto = start.element.getNearestTextElement('below');
+ goto = canvas.getNearestTextElement('below', start.element);
caretTo = 'start';
} else {
goto = end.element;
if(grandParent && grandParent.children().length === 1) {
goto = grandParent.wlxmlNode.append({text: ''});
} else {
- goto = element.getNearestTextElement(direction);
+ goto = canvas.getNearestTextElement(direction, element);
}
parent.wlxmlNode.detach();
} else {
- goto = element.getNearestTextElement(direction);
+ goto = canvas.getNearestTextElement(direction, element);
element.wlxmlNode.detach();
}
canvas.setCurrentElement(goto, {caretTo: caretTo});
}
else if(cursorAtOperationEdge) {
if(direction === 'below') {
- element = element.getNearestTextElement(direction);
+ element = canvas.getNearestTextElement(direction, element);
}
if(element) {
goto = element.wlxmlNode.mergeContentUp();
- canvas.setCurrentElement(goto.node, {caretTo: goto.offset});
+ if(goto) {
+ canvas.setCurrentElement(goto.node, {caretTo: goto.offset});
+ }
}
event.preventDefault();
}