in jspwiki-war/src/main/scripts/wiki-wysiwyg/Source/MooEditable/MooEditable.js [459:526]
editorKeyDown: function(e){
if (this.editorDisabled){
e.stop();
return;
}
if (e.key == 'enter'){
if (this.options.paragraphise){
if (e.shift && (Browser.safari || Browser.chrome)){
var s = this.selection;
var r = s.getRange();
// Insert BR element
var br = this.doc.createElement('br');
r.insertNode(br);
// Place caret after BR
r.setStartAfter(br);
r.setEndAfter(br);
s.setRange(r);
// Could not place caret after BR then insert an nbsp entity and move the caret
if (s.getSelection().focusNode == br.previousSibling){
var nbsp = this.doc.createTextNode('\u00a0');
var p = br.parentNode;
var ns = br.nextSibling;
(ns) ? p.insertBefore(nbsp, ns) : p.appendChild(nbsp);
s.selectNode(nbsp);
s.collapse(1);
}
// Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117
this.win.scrollTo(0, Element.getOffsets(s.getRange().startContainer).y);
e.preventDefault();
} else if (Browser.firefox || Browser.safari || Browser.chrome){
var node = this.selection.getNode();
var isBlock = Element.getParents(node).include(node).some(function(el){
return el.nodeName.test(blockEls);
});
if (!isBlock) this.execute('insertparagraph');
}
} else {
if (Browser.ie){
var r = this.selection.getRange();
var node = this.selection.getNode();
if (r && node.get('tag') != 'li'){
this.selection.insertContent('<br>');
this.selection.collapse(false);
}
e.preventDefault();
}
}
}
if (Browser.opera){
var ctrlmeta = e.control || e.meta;
if (ctrlmeta && e.key == 'x'){
this.fireEvent('editorCut', [e, this]);
} else if (ctrlmeta && e.key == 'c'){
this.fireEvent('editorCopy', [e, this]);
} else if ((ctrlmeta && e.key == 'v') || (e.shift && e.code == 45)){
this.fireEvent('editorPaste', [e, this]);
}
}
this.fireEvent('editorKeyDown', [e, this]);
},