#include <sys/file.h>
#define LENGTH(x) (sizeof x / sizeof x[0])
-#define CLEANMASK(mask) (mask & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK|GDK_MOD2_MASK|GDK_MOD3_MASK|GDK_MOD4_MASK|GDK_MOD5_MASK))
enum { AtomFind, AtomGo, AtomUri, AtomLast };
updatewinid(c);
for(i = 0; i < LENGTH(keys); i++) {
if(gdk_keyval_to_lower(ev->keyval) == keys[i].keyval
- && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
+ && (ev->state & keys[i].mod) == keys[i].mod
&& keys[i].func) {
keys[i].func(c, &(keys[i].arg));
processed = TRUE;