diff --git a/IPython/frontend/html/notebook/static/js/codecell.js b/IPython/frontend/html/notebook/static/js/codecell.js index db0f546..0adf758 100644 --- a/IPython/frontend/html/notebook/static/js/codecell.js +++ b/IPython/frontend/html/notebook/static/js/codecell.js @@ -13,6 +13,7 @@ var IPython = (function (IPython) { "use strict"; var utils = IPython.utils; + var key = IPython.utils.keycodes; var CodeCell = function (notebook) { this.code_mirror = null; @@ -101,7 +102,7 @@ var IPython = (function (IPython) { var cursor = editor.getCursor(); var pre_cursor = editor.getRange({line:cursor.line,ch:0},cursor).trim()+'('; that.request_tooltip_after_time(pre_cursor,tooltip_wait_time); - } else if (event.which === 38) { + } else if (event.which === key.upArrow) { // If we are not at the top, let CM handle the up arrow and // prevent the global keydown handler from handling it. if (!that.at_top()) { @@ -110,7 +111,7 @@ var IPython = (function (IPython) { } else { return true; }; - } else if (event.which === 40) { + } else if (event.which === key.downArrow) { // If we are not at the bottom, let CM handle the down arrow and // prevent the global keydown handler from handling it. if (!that.at_bottom()) { @@ -119,7 +120,7 @@ var IPython = (function (IPython) { } else { return true; }; - } else if (event.keyCode === 9 && event.type == 'keydown') { + } else if (event.keyCode === key.tab && event.type == 'keydown') { // Tab completion. var cur = editor.getCursor(); //Do not trim here because of tooltip @@ -139,7 +140,7 @@ var IPython = (function (IPython) { this.completer.startCompletion(); return true; }; - } else if (event.keyCode === 8 && event.type == 'keydown') { + } else if (event.keyCode === key.backspace && event.type == 'keydown') { // If backspace and the line ends with 4 spaces, remove them. var cur = editor.getCursor(); var line = editor.getLine(cur.line); @@ -157,7 +158,7 @@ var IPython = (function (IPython) { } else { // keypress/keyup also trigger on TAB press, and we don't want to // use those to disable tab completion. - if (this.is_completing && event.keyCode !== 9) { + if (this.is_completing && event.keyCode !== key.tab) { var ed_cur = editor.getCursor(); var cc_cur = this.completion_cursor; if (ed_cur.line !== cc_cur.line || ed_cur.ch !== cc_cur.ch) { diff --git a/IPython/frontend/html/notebook/static/js/utils.js b/IPython/frontend/html/notebook/static/js/utils.js index 5b1022b..a2e6f32 100644 --- a/IPython/frontend/html/notebook/static/js/utils.js +++ b/IPython/frontend/html/notebook/static/js/utils.js @@ -91,11 +91,29 @@ IPython.utils = (function (IPython) { } }; + // some keycodes that seem to be platform/browser independant + var keycodes ={ + backspace: 8, + tab : 9, + enter : 13, + shift : 16, + esc : 27, + space : 32, + pgUp : 33, + pgDown : 34, + leftArrow: 37, + left : 37, + upArrow : 38, + rightArrow:39, + right : 39, + downArrow: 40, + }; return { uuid : uuid, fixConsole : fixConsole, - grow : grow + keycodes : keycodes, + grow : grow, }; }(IPython));