Skip to content
Snippets Groups Projects
Commit 13698245 authored by Michael Hamann's avatar Michael Hamann
Browse files

Fixed automatic insertion of listbullets in Opera FS#1877

The keydown event can't be prevented in Opera (see
http://www.quirksmode.org/dom/events/keys.html) so this switches back to
keypress in Opera (keypress doesn't give the correct key codes in
Firefox). Furthermore Opera replaces '\n' by '\r\n' when inserting text,
thus the offset for cursor/selection placement was wrong.
parent 226bf2dc
No related branches found
No related tags found
No related merge requests found
......@@ -169,7 +169,7 @@ function keyHandler(e){
var scroll = field.scrollHeight;
var match2 = search.match(/^\n +[\*-]\s*$/);
// Cancel list if the last item is empty (i. e. two times enter)
if (match2 && field.value.substr(selection.start).match(/^($|\n)/)) {
if (match2 && field.value.substr(selection.start).match(/^($|\r?\n)/)) {
field.value = field.value.substr(0, linestart) + "\n" +
field.value.substr(selection.start);
selection.start = linestart + 1;
......@@ -222,7 +222,13 @@ function keyHandler(e){
addInitEvent(function(){
var field = $('wiki__text');
if(!field) return;
addEvent(field,'keydown',keyHandler);
// in Firefox, keypress doesn't send the correct keycodes,
// in Opera, the default of keydown can't be prevented
if (is_opera) {
addEvent(field,'keypress',keyHandler);
} else {
addEvent(field,'keydown',keyHandler);
}
});
/**
......
......@@ -161,7 +161,12 @@ function pasteText(selection,text,opts){
selection.obj.value.substring(selection.end, selection.obj.value.length);
// set new selection
selection.end = selection.start + text.length;
if (is_opera) {
// Opera replaces \n by \r\n when inserting text.
selection.end = selection.start + text.replace(/\r?\n/g, '\r\n').length;
} else {
selection.end = selection.start + text.length;
}
// modify the new selection if wanted
if(opts.startofs) selection.start += opts.startofs;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment