Fixed none working keybinds with single uppercase chars.
authorDaniel Carl <danielcarl@gmx.de>
Sun, 2 Dec 2012 21:37:55 +0000 (22:37 +0100)
committerDaniel Carl <danielcarl@gmx.de>
Sun, 2 Dec 2012 21:37:55 +0000 (22:37 +0100)
src/keybind.c
src/keybind.h

index 390481e..e9d7836 100644 (file)
@@ -199,10 +199,8 @@ static guint keybind_str_to_value(const gchar* str)
 
 static gboolean keybind_keypress_callback(WebKitWebView* webview, GdkEventKey* event)
 {
-    static GdkModifierType modifiers;
-    modifiers    = gtk_accelerator_get_default_mod_mask();
     guint keyval = event->keyval;
-    guint state  = (event->state & modifiers);
+    guint state  = CLEAN_STATE(event);
 
     /* check for escape or modkeys or counts */
     if (IS_ESCAPE_KEY(keyval, state)) {
index 7dab1ee..03a2001 100644 (file)
@@ -21,6 +21,8 @@
 #define KEYBIND_H
 
 #define IS_ESCAPE_KEY(k, s) ((k == GDK_Escape && s == 0) || (k == GDK_c && s == GDK_CONTROL_MASK))
+#define CLEAN_STATE_WITH_SHIFT(e) ((e)->state & (GDK_MOD1_MASK|GDK_MOD4_MASK|GDK_SHIFT_MASK|GDK_CONTROL_MASK))
+#define CLEAN_STATE(e)            ((e)->state & (GDK_MOD1_MASK|GDK_MOD4_MASK|GDK_CONTROL_MASK))
 
 #include <gdk/gdkkeysyms.h>
 #include <gdk/gdkkeysyms-compat.h>