diff options
author | lupo49 <post@lupo49.de> | 2011-08-22 19:11:18 +0200 |
---|---|---|
committer | lupo49 <post@lupo49.de> | 2011-08-22 19:11:18 +0200 |
commit | d8f231b5162801fe333f899552b5808a83282634 (patch) | |
tree | f8021011b52502521eeff4f33e368628bb73ba89 /lib/scripts/edit.js | |
parent | 8e5a3957cd8de15f48dc27e9c07dfe4033fd6997 (diff) | |
parent | 1c5f7481f4e685ad3ffe9ba48ed47ed75196e64a (diff) | |
download | rpg-d8f231b5162801fe333f899552b5808a83282634.tar.gz rpg-d8f231b5162801fe333f899552b5808a83282634.tar.bz2 |
Merge remote branch 'upstream/master'
Diffstat (limited to 'lib/scripts/edit.js')
-rw-r--r-- | lib/scripts/edit.js | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/lib/scripts/edit.js b/lib/scripts/edit.js index a9623e14d..816568e92 100644 --- a/lib/scripts/edit.js +++ b/lib/scripts/edit.js @@ -156,86 +156,6 @@ function addBtnActionSignature(btn, props, edid) { } /** - * Make intended formattings easier to handle - * - * Listens to all key inputs and handle indentions - * of lists and code blocks - * - * Currently handles space, backspce and enter presses - * - * @author Andreas Gohr <andi@splitbrain.org> - * @fixme handle tabs - */ -function keyHandler(e){ - if(e.keyCode != 13 && - e.keyCode != 8 && - e.keyCode != 32) return; - var field = e.target; - var selection = getSelection(field); - if(selection.getLength()) return; //there was text selected, keep standard behavior - var search = "\n"+field.value.substr(0,selection.start); - var linestart = Math.max(search.lastIndexOf("\n"), - search.lastIndexOf("\r")); //IE workaround - search = search.substr(linestart); - - - if(e.keyCode == 13){ // Enter - // keep current indention for lists and code - var match = search.match(/(\n +([\*-] ?)?)/); - if(match){ - 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(/^($|\r?\n)/)) { - field.value = field.value.substr(0, linestart) + "\n" + - field.value.substr(selection.start); - selection.start = linestart + 1; - selection.end = linestart + 1; - setSelection(selection); - } else { - insertAtCarret(field.id,match[1]); - } - field.scrollTop += (field.scrollHeight - scroll); - e.preventDefault(); // prevent enter key - return false; - } - }else if(e.keyCode == 8){ // Backspace - // unindent lists - var match = search.match(/(\n +)([*-] ?)$/); - if(match){ - var spaces = match[1].length-1; - - if(spaces > 3){ // unindent one level - field.value = field.value.substr(0,linestart)+ - field.value.substr(linestart+2); - selection.start = selection.start - 2; - selection.end = selection.start; - }else{ // delete list point - field.value = field.value.substr(0,linestart)+ - field.value.substr(selection.start); - selection.start = linestart; - selection.end = linestart; - } - setSelection(selection); - e.preventDefault(); // prevent backspace - return false; - } - }else if(e.keyCode == 32){ // Space - // intend list item - var match = search.match(/(\n +)([*-] )$/); - if(match){ - field.value = field.value.substr(0,linestart)+' '+ - field.value.substr(linestart); - selection.start = selection.start + 2; - selection.end = selection.start; - setSelection(selection); - e.preventDefault(); // prevent space - return false; - } - } -} - -/** * Determine the current section level while editing * * @author Andreas Gohr <gohr@cosmocode.de> @@ -303,14 +223,6 @@ addInitEvent(function () { if (edit_text.length > 0) { if(edit_text.attr('readOnly')) return; - // in Firefox, keypress doesn't send the correct keycodes, - // in Opera, the default of keydown can't be prevented - if (is_opera) { - edit_text.keypress(keyHandler); - } else { - edit_text.keydown(keyHandler); - } - // set focus and place cursor at the start var sel = getSelection(edit_text.get(0)); sel.start = 0; |