};
var handles = function(handler, event) {
- if(handler.key === event.which)
+ if(handler.key === event.which) {
return true;
- if(handler.keys && handler.keys.indexOf(event.which) !== -1)
+ }
+ if(handler.keys && handler.keys.indexOf(event.which) !== -1) {
return true;
+ }
return false;
};
event.preventDefault();
var cursor = canvas.getCursor(),
position = cursor.getPosition(),
- element = position.element;
+ element = position.element,
+ added;
if(Object.keys(cursor.getPosition()).length === 0) {
var currentElement = canvas.getCurrentNodeElement();
if(currentElement) {
- var added = currentElement.data('wlxmlNode').after({
+ added = currentElement.data('wlxmlNode').after({
tag: currentElement.getWlxmlTag() || 'div',
attrs: {'class': currentElement.getWlxmlClass() || 'p'}
});
if(element instanceof documentElement.DocumentTextElement) {
element = element.parent();
}
- var added = element.data('wlxmlNode').after(
+ added = element.data('wlxmlNode').after(
{tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}}
);
added.append({text: ''});
}
//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;
+ // 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').breakContent({offset: position.offset}),
+ goto, gotoOptions;
+ if(result.emptyText) {
+ goto = result.createdEmpty;
gotoOptions = {};
} else {
- goto = nodes.second;
+ goto = result.second;
gotoOptions = {caretTo: 'start'};
}
direction = 'below';
caretTo = 'start';
}
+ /* globals window */
element = canvas.getDocumentElement(utils.nearestInDocumentOrder('[document-text-element]:visible', direction, window.getSelection().focusNode));
}
canvas.setCurrentElement(element, {caretTo: caretTo});
var selectsWholeTextElement = function(cursor) {
- if(cursor.isSelecting() && cursor.getSelectionStart().offsetAtBeginning && cursor.getSelectionEnd().offsetAtEnd)
+ if(cursor.isSelecting() && cursor.getSelectionStart().offsetAtBeginning && cursor.getSelectionEnd().offsetAtEnd) {
return true;
+ }
return false;
-}
+};
handlers.push({key: KEYS.X,
keydown: function(event, canvas) {
- if(event.ctrlKey && selectsWholeTextElement(canvas.getCursor()))
+ if(event.ctrlKey && selectsWholeTextElement(canvas.getCursor())) {
event.preventDefault();
+ }
}
});
var willDeleteWholeText = function() {
return element.getText().length === 1 || selectsWholeTextElement(cursor);
- }
+ };
if(willDeleteWholeText()) {
event.preventDefault();