summaryrefslogtreecommitdiff
path: root/lib/scripts/edit.js
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2011-08-19 20:09:07 +0200
committerAndreas Gohr <andi@splitbrain.org>2011-08-19 20:09:07 +0200
commitbedfa6abf0ea09be1ea44de0c014d83bd57a7412 (patch)
tree69615b94ca16e081a81ff0082ac54d50ff33eb6d /lib/scripts/edit.js
parent0a245976b7d2b80796b2e22956a6838fe241f59e (diff)
downloadrpg-bedfa6abf0ea09be1ea44de0c014d83bd57a7412.tar.gz
rpg-bedfa6abf0ea09be1ea44de0c014d83bd57a7412.tar.bz2
moved keyhandler to the new dw_editor object
Diffstat (limited to 'lib/scripts/edit.js')
-rw-r--r--lib/scripts/edit.js88
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;