diff options
author | John McLear <john@mclear.co.uk> | 2012-11-28 17:17:35 +0000 |
---|---|---|
committer | John McLear <john@mclear.co.uk> | 2012-11-28 17:17:35 +0000 |
commit | 8c7939ec9f18da05bb58da0b43d805948c9cc9b9 (patch) | |
tree | b4910911b736d2db315d08b8417c3557ccc5232a | |
parent | 182ea62de90abb19cf1e6100d130f2051906ddb2 (diff) | |
download | etherpad-lite-8c7939ec9f18da05bb58da0b43d805948c9cc9b9.zip |
catch control S and send an event to save a revision
-rw-r--r-- | src/static/js/ace2_inner.js | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/static/js/ace2_inner.js b/src/static/js/ace2_inner.js index b3bc91a9..9290fd56 100644 --- a/src/static/js/ace2_inner.js +++ b/src/static/js/ace2_inner.js @@ -3537,7 +3537,7 @@ function Ace2Inner(){ var keyCode = evt.keyCode; var which = evt.which; - // prevent ESC key + // prevent ESC key and Control S if (keyCode == 27) { evt.preventDefault(); @@ -3562,7 +3562,7 @@ function Ace2Inner(){ inCallStackIfNecessary("handleKeyEvent", function() { - if (type == "keypress" || (isTypeForSpecialKey && keyCode == 13 /*return*/ )) + if (type == "keypress" || (isTypeForSpecialKey && keyCode == 13 || keyCode == 83 /*return*/ )) { // in IE, special keys don't send keypress, the keydown does the action if (!outsideKeyPress(evt)) @@ -3575,7 +3575,6 @@ function Ace2Inner(){ { outsideKeyDown(evt); } - if (!stopped) { var specialHandledInHook = hooks.callAll('aceKeyEvent', { @@ -3614,6 +3613,12 @@ function Ace2Inner(){ }, 0); specialHandled = true; } + if ((!specialHandled) && isTypeForSpecialKey && keyCode == 83) + { + evt.preventDefault(); + parent.parent.pad.collabClient.sendMessage({"type":"SAVE_REVISION"}); /* The parent.parent part of this is BAD and I feel bad.. It may break something */ + specialHandled = true; + } if ((!specialHandled) && isTypeForSpecialKey && keyCode == 9 && !(evt.metaKey || evt.ctrlKey)) { // tab |