diff options
-rw-r--r-- | config.def.h | 4 | ||||
-rw-r--r-- | surf.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/config.def.h b/config.def.h index 8a27a03..1cba4d7 100644 --- a/config.def.h +++ b/config.def.h @@ -45,6 +45,10 @@ static Bool hidebackground = FALSE; #define MODKEY GDK_CONTROL_MASK /* hotkeys */ +/* + * If you use anything else but MODKEY and GDK_SHIFT_MASK, don't forget to + * edit the CLEANMASK() macro. + */ static Key keys[] = { /* modifier keyval function arg Focus */ { MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } }, @@ -28,6 +28,7 @@ char *argv0; #define LENGTH(x) (sizeof x / sizeof x[0]) +#define CLEANMASK(mask) (mask & (MODKEY|GDK_SHIFT_MASK)) #define COOKIEJAR_TYPE (cookiejar_get_type ()) #define COOKIEJAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COOKIEJAR_TYPE, CookieJar)) @@ -543,7 +544,7 @@ keypress(GtkWidget* w, GdkEventKey *ev, Client *c) { updatewinid(c); for(i = 0; i < LENGTH(keys); i++) { if(gdk_keyval_to_lower(ev->keyval) == keys[i].keyval - && (ev->state & keys[i].mod) == keys[i].mod + && CLEANMASK(ev->state) == keys[i].mod && keys[i].func) { keys[i].func(c, &(keys[i].arg)); processed = TRUE; |