From: Daniel Carl <danielcarl@gmx.de>
Date: Sun, 2 Dec 2012 21:37:55 +0000 (+0100)
Subject: Fixed none working keybinds with single uppercase chars.
X-Git-Url: https://git.owens.tech/wrapped.html/wrapped.html/git?a=commitdiff_plain;h=70887df329e3921089840787e690e01b31e7f448;p=vimb.git

Fixed none working keybinds with single uppercase chars.
---

diff --git a/src/keybind.c b/src/keybind.c
index 390481e..e9d7836 100644
--- a/src/keybind.c
+++ b/src/keybind.c
@@ -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)) {
diff --git a/src/keybind.h b/src/keybind.h
index 7dab1ee..03a2001 100644
--- a/src/keybind.h
+++ b/src/keybind.h
@@ -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>