[gnome-documents/gnome-3-6] searchbar: don't handle keynav and space	events
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [gnome-documents/gnome-3-6] searchbar: don't handle keynav and space	events
- Date: Mon, 15 Oct 2012 20:43:03 +0000 (UTC)
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]