[Xfce4-commits] <midori:master> Filter keyboard state against modfifier default mask

Christian Dywan noreply at xfce.org
Tue Mar 30 01:06:01 CEST 2010


Updating branch refs/heads/master
         to 05488d8bd3e1258ba258aad42a0949401e617c1a (commit)
       from 004a347340a93c6d2aa38a11b2df7b316108d048 (commit)

commit 05488d8bd3e1258ba258aad42a0949401e617c1a
Author: Enrico Tröger <enrico.troeger at uvena.de>
Date:   Tue Mar 30 00:39:31 2010 +0200

    Filter keyboard state against modfifier default mask
    
    The modifier state does in fact incorporate modal keys such as
    NumLock. So code assuming that state be 0 if no modifier is
    pressed is wrong, if NumLock, CapsLock and the like are active.
    
    The solution is to filter out these modal keys with
    gtk_accelerator_get_default_mod_mask(), and compare the result.
    
    This fixes the problem of being unable to type keys used as
    single-letter shortcuts.

 midori/midori-browser.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 2e2c4c0..cf83bb8 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -1784,12 +1784,14 @@ midori_browser_key_press_event (GtkWidget*   widget,
 {
     GtkWindow* window = GTK_WINDOW (widget);
     GtkWidgetClass* widget_class;
+    guint clean_state;
 
     if (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK))
         if (sokoke_window_activate_key (window, event))
             return TRUE;
 
-    if (!event->state && gtk_window_propagate_key_event (window, event))
+    clean_state = event->state & gtk_accelerator_get_default_mod_mask();
+    if (!clean_state && gtk_window_propagate_key_event (window, event))
         return TRUE;
 
     if (!(event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)))



More information about the Xfce4-commits mailing list