[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