From a96db0f928ceafc9c24a4155f0ddecf13c8535f8 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 23 Nov 2012 03:27:19 -0500
Subject: [PATCH] Fix keybord events on messages list in opera browser (#1488823)

---
 program/js/list.js |   49 ++++++++++---------------------------------------
 1 files changed, 10 insertions(+), 39 deletions(-)

diff --git a/program/js/list.js b/program/js/list.js
index 6ab6867..76ccaa5 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -90,10 +90,8 @@
     this.frame = this.list.parentNode;
 
     // set body events
-    if (this.keyboard) {
-      rcube_event.add_listener({event:bw.opera?'keypress':'keydown', object:this, method:'key_press'});
-      rcube_event.add_listener({event:'keydown', object:this, method:'key_down'});
-    }
+    if (this.keyboard)
+      rcube_event.add_listener({event:'keydown', object:this, method:'key_press'});
   }
 },
 
@@ -996,6 +994,14 @@
     case 35: // End
       this.select_last(mod_key);
       return rcube_event.cancel(e);
+    case 27:
+      if (this.drag_active)
+        return this.drag_mouse_up(e);
+      if (this.col_drag_active) {
+        this.selected_column = null;
+        return this.column_drag_mouse_up(e);
+      }
+      return rcube_event.cancel(e);
     default:
       this.key_pressed = keyCode;
       this.modkey = mod_key;
@@ -1004,41 +1010,6 @@
 
       if (this.key_pressed == this.BACKSPACE_KEY)
         return rcube_event.cancel(e);
-  }
-
-  return true;
-},
-
-/**
- * Handler for keydown events
- */
-key_down: function(e)
-{
-  var target = e.target || {};
-  if (this.focused != true || target.nodeName == 'INPUT' || target.nodeName == 'TEXTAREA' || target.nodeName == 'SELECT')
-    return true;
-  
-  switch (rcube_event.get_keycode(e)) {
-    case 27:
-      if (this.drag_active)
-      return this.drag_mouse_up(e);
-      if (this.col_drag_active) {
-        this.selected_column = null;
-        return this.column_drag_mouse_up(e);
-      }
-
-    case 40:
-    case 38: 
-    case 63233:
-    case 63232:
-    case 61:
-    case 107:
-    case 109:
-    case 32:
-      if (!rcube_event.get_modifier(e) && this.focused)
-        return rcube_event.cancel(e);
-
-    default:
   }
 
   return true;

--
Gitblit v1.9.1