[gnome-documents/gnome-3-6] searchbar: don't handle keynav and space events



commit 29f1ee0026f3d8efedea601895f7e834ad132df4
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Mon Oct 1 09:56:53 2012 -0400

    searchbar: don't handle keynav and space events
    
    If the search already has focus, we're going to handle these
    automatically; if it doesn't, we don't want to handle them manually,
    since they're used for keynavigation.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=669617

 src/searchbar.js |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/src/searchbar.js b/src/searchbar.js
index a122299..1efed52 100644
--- a/src/searchbar.js
+++ b/src/searchbar.js
@@ -349,10 +349,48 @@ const Searchbar = new Lang.Class({
         this.widget.destroy();
     },
 
+    _isKeynavEvent: function(event) {
+        let keyval = event.get_keyval()[1];
+
+        if (keyval == Gdk.KEY_Tab ||
+            keyval == Gdk.KEY_KP_Tab ||
+            keyval == Gdk.KEY_Up ||
+            keyval == Gdk.KEY_KP_Up ||
+            keyval == Gdk.KEY_Up ||
+            keyval == Gdk.KEY_Down ||
+            keyval == Gdk.KEY_KP_Down ||
+            keyval == Gdk.KEY_Left ||
+            keyval == Gdk.KEY_KP_Left ||
+            keyval == Gdk.KEY_Right ||
+            keyval == Gdk.KEY_KP_Right ||
+            keyval == Gdk.KEY_Home ||
+            keyval == Gdk.KEY_KP_Home ||
+            keyval == Gdk.KEY_End ||
+            keyval == Gdk.KEY_KP_End ||
+            keyval == Gdk.KEY_Page_Up ||
+            keyval == Gdk.KEY_KP_Page_Up ||
+            keyval == Gdk.KEY_Page_Down ||
+            keyval == Gdk.KEY_KP_Page_Down)
+            return true;
+
+        return false;
+    },
+
+    _isSpaceEvent: function(event) {
+        let keyval = event.get_keyval()[1];
+        return (keyval == Gdk.KEY_space);
+    },
+
     handleEvent: function(event) {
         if (this._in)
             return false;
 
+        if (this._isKeynavEvent(event))
+            return false;
+
+        if (this._isSpaceEvent(event))
+            return false;
+
         if (!this._searchEntry.get_realized())
             this._searchEntry.realize();
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]