+
+ if(e.which === KEYS.ENTER) {
+ e.preventDefault();
+ var cursor = canvas.getCursor(),
+ position = cursor.getPosition(),
+ element = position.element;
+
+ if(!cursor.isSelecting()) {
+ if(e.ctrlKey) {
+ var added = element.after({tag: 'block'});
+ added.append({text:''});
+ canvas.setCurrentElement(added, {caretTo: 'start'});
+
+ } else {
+
+ if(!(element.parent().parent())) {
+ return false; // top level element is unsplittable
+ }
+
+ var elements = position.element.split({offset: position.offset}),
+ newEmpty,
+ goto,
+ gotoOptions;
+
+ if(position.offsetAtBeginning)
+ newEmpty = elements.first;
+ else if(position.offsetAtEnd)
+ newEmpty = elements.second;
+
+ if(newEmpty) {
+ goto = newEmpty.append(documentElement.DocumentTextElement.create({text: ''}, this));
+ gotoOptions = {};
+ } else {
+ goto = elements.second;
+ gotoOptions = {caretTo: 'start'};
+ }
+
+ canvas.setCurrentElement(goto, gotoOptions);
+ }
+ }
+ }