diff --git a/data/examples/keys b/data/examples/keys index 036d2fa2bb39eaa493976500c6a2bfd9049924c7..1f1f3741fa356a43eb96f2dcae83075e532f7615 100644 --- a/data/examples/keys +++ b/data/examples/keys @@ -21,10 +21,10 @@ remove l Delete delete C-l C-Delete # and image movement -scroll_up S-J C-Up -scroll_down S-K C-Down -scroll_left S-H C-Left -scroll_right S-L C-Right +scroll_up J C-Up +scroll_down K C-Down +scroll_left H C-Left +scroll_right L C-Right # zooming zoom_in C-Up f diff --git a/man/feh.pre b/man/feh.pre index 3811d0756c9ca4f29a5fd6398d7112f3b0ed6a15..3c505f7876acdcaa60be4b48d0cf304dfd193c7b 100644 --- a/man/feh.pre +++ b/man/feh.pre @@ -698,8 +698,7 @@ looks like .Pq for example Qo C-Delete Qc for Ctrl+Delete . .Pp Available modifiers are -.Ar C No for Control , -.Ar S No for Shift and +.Ar C No for Control and .Ar 1 No to Ar 5 No for Mod1 to Mod5 . .Pp Specifying an diff --git a/src/keyevents.c b/src/keyevents.c index 09b520d6093d10be440ee87e8257dd7f8f6d0c68..b0bdc8d40a41ca41e5358de3b9c4eabbb60d2c74 100644 --- a/src/keyevents.c +++ b/src/keyevents.c @@ -54,9 +54,6 @@ static void feh_set_parse_kb_partial(fehkey *key, int index, char *ks) { case 'C': mod = ControlMask; break; - case 'S': - mod = ShiftMask; - break; case '1': mod = Mod1Mask; break; @@ -296,8 +293,16 @@ void init_keyevents(void) { static short feh_is_kp(fehkey *key, int sym, int state) { int i; + + /* + * Regarding the | 0x1: state 1 = shift, but we don't care about that. + * Shift produces different keysyms than non-shift anyways. + */ + for (i = 0; i < 3; i++) { - if ((key->keysyms[i] == sym) && (key->keystates[i] == state)) + if ( + (key->keysyms[i] == sym) && + ((key->keystates[i] | 0x1) == (state | 0x1))) return 1; else if (key->keysyms[i] == 0) return 0;