diff options
Diffstat (limited to 'program/js')
-rw-r--r-- | program/js/app.js | 19 | ||||
-rw-r--r-- | program/js/common.js | 9 |
2 files changed, 17 insertions, 11 deletions
diff --git a/program/js/app.js b/program/js/app.js index e166d07da..7406df2ff 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -1638,14 +1638,13 @@ function rcube_webmail() // handler for keyboard events on the _user field this.login_user_keypress = function(e) { - if (!e) - e = window.event; - var key = e.keyCode ? e.keyCode : e.which; + var key = rcube_event.get_keycode(e); + var elm; // enter - if ((key==13) && (document.form._pass)) + if ((key==13) && (elm = rcube_find_object('_pass'))) { - rcube_find_object('_pass').focus(); + elm.focus(); return false; } }; @@ -1986,11 +1985,9 @@ function rcube_webmail() if (this.ksearch_timer) clearTimeout(this.ksearch_timer); - if (!e) - e = window.event; - var highlight; - var key = e.keyCode ? e.keyCode : e.which; + var key = rcube_event.get_keycode(e); + var mod = rcube_event.get_modifier(e); switch (key) { @@ -2022,7 +2019,7 @@ function rcube_webmail() return rcube_event.cancel(e); case 9: // tab - if(e.shiftKey) + if(mod == SHIFT_KEY) break; case 13: // enter @@ -2531,7 +2528,7 @@ function rcube_webmail() // handler for keyboard events on the input field this.name_input_keypress = function(e) { - var key = document.all ? event.keyCode : document.getElementById ? e.keyCode : 0; + var key = rcube_event.get_keycode(e); // enter if (key==13) diff --git a/program/js/common.js b/program/js/common.js index 82d7ed17c..be9a131c2 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -103,6 +103,15 @@ function roundcube_browser() // static functions for event handling var rcube_event = { + /** + * returns the event key code + */ + get_keycode: function(e) + { + e = e || window.event; + return e && e.keyCode ? e.keyCode : (e && e.which ? e.which : 0); + }, + /** * returns modifier key (constants defined at top of file) */ |