[gnome-boxes] Don't pass keynav keyboard events to search entry



commit 1c242776be42a5ed4ab5e14ced0ad3caf8e038b3
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Sep 27 19:52:49 2012 +0200

    Don't pass keynav keyboard events to search entry
    
    This will just cause weird beeps from e.g. the arrow handling of the
    entry reaching the end of the text. Instead we continue on eventually
    reaching the window-wide keynav code.
    
    When the entry actually has focus it will get the events directly,
    so entry keynav still works.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=684988

 src/searchbar.vala |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)
---
diff --git a/src/searchbar.vala b/src/searchbar.vala
index e6a0809..a36afd4 100644
--- a/src/searchbar.vala
+++ b/src/searchbar.vala
@@ -88,7 +88,28 @@ private class Boxes.Searchbar: Boxes.UI {
             return true;
         }
 
-        var res = entry.event ((Gdk.Event)(&event));
+        var res = false;
+
+        // Don't pass on keynav keys
+        if (event.keyval != Gdk.Key.Tab &&
+            event.keyval != Gdk.Key.KP_Tab &&
+            event.keyval != Gdk.Key.Up &&
+            event.keyval != Gdk.Key.KP_Up &&
+            event.keyval != Gdk.Key.Down &&
+            event.keyval != Gdk.Key.KP_Down &&
+            event.keyval != Gdk.Key.Left &&
+            event.keyval != Gdk.Key.KP_Left &&
+            event.keyval != Gdk.Key.Right &&
+            event.keyval != Gdk.Key.KP_Right &&
+            event.keyval != Gdk.Key.Home &&
+            event.keyval != Gdk.Key.KP_Home &&
+            event.keyval != Gdk.Key.End &&
+            event.keyval != Gdk.Key.KP_End &&
+            event.keyval != Gdk.Key.Page_Up &&
+            event.keyval != Gdk.Key.KP_Page_Up &&
+            event.keyval != Gdk.Key.Page_Down &&
+            event.keyval != Gdk.Key.KP_Page_Down)
+            res = entry.event ((Gdk.Event)(&event));
         var new_text = text;
 
         entry.disconnect (preedit_changed_id);



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