Fix keyboard control of the list widgets and prevent Safari from scrolling (#1485279)
| | |
| | | |
| | | // start timer for message preview (wait for double click) |
| | | if (selected && this.env.contentframe && !list.multi_selecting) |
| | | this.preview_timer = window.setTimeout(function(){ ref.msglist_get_preview(); }, this.dblclick_time + 10); |
| | | this.preview_timer = window.setTimeout(function(){ ref.msglist_get_preview(); }, 200); |
| | | else if (this.env.contentframe) |
| | | this.show_contentframe(false); |
| | | }; |
| | |
| | | |
| | | var id, frame, ref = this; |
| | | if (id = list.get_single_selection()) |
| | | this.preview_timer = window.setTimeout(function(){ ref.load_contact(id, 'show'); }, this.dblclick_time + 10); |
| | | this.preview_timer = window.setTimeout(function(){ ref.load_contact(id, 'show'); }, 200); |
| | | else if (this.env.contentframe) |
| | | this.show_contentframe(false); |
| | | |
| | |
| | | this.frame = this.list.parentNode; |
| | | |
| | | // set body events |
| | | if (this.keyboard) |
| | | rcube_event.add_listener({element:document, event:'keypress', object:this, method:'key_press'}); |
| | | if (this.keyboard) { |
| | | rcube_event.add_listener({element:document, event:'keyup', object:this, method:'key_press'}); |
| | | rcube_event.add_listener({element:document, event:'keydown', object:rcube_event, method:'cancel'}); |
| | | } |
| | | } |
| | | }, |
| | | |
| | |
| | | if (this.focused != true) |
| | | return true; |
| | | |
| | | var keyCode = document.layers ? e.which : document.all ? event.keyCode : document.getElementById ? e.keyCode : 0; |
| | | var keyCode = rcube_event.get_keycode(e); |
| | | var mod_key = rcube_event.get_modifier(e); |
| | | switch (keyCode) |
| | | { |
| | |
| | | case 38: |
| | | case 63233: // "down", in safari keypress |
| | | case 63232: // "up", in safari keypress |
| | | // Stop propagation so that the browser doesn't scroll |
| | | rcube_event.cancel(e); |
| | | return this.use_arrow_key(keyCode, mod_key); |
| | | break; |
| | | |
| | | default: |
| | | this.shiftkey = e.shiftKey; |
| | | this.key_pressed = keyCode; |