tweaks: rename a struct element, to be more fitting
The keycode is not a sequence; it is a single integer value.master
parent
e295070193
commit
1c9ab8bf16
42
src/global.c
42
src/global.c
|
@ -342,7 +342,7 @@ void add_to_sclist(int menus, const char *scstring, void (*func)(void), int togg
|
|||
assign_keyinfo(s, scstring);
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "Setting sequence to %d for shortcut \"%s\" in menus %x\n", s->seq, scstring, s->menus);
|
||||
fprintf(stderr, "Setting keycode to %d for shortcut \"%s\" in menus %x\n", s->keycode, scstring, s->menus);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -381,7 +381,7 @@ int sc_seq_or(void (*func)(void), int defaultval)
|
|||
|
||||
if (s) {
|
||||
meta_key = s->meta;
|
||||
return s->seq;
|
||||
return s->keycode;
|
||||
}
|
||||
/* else */
|
||||
return defaultval;
|
||||
|
@ -406,51 +406,51 @@ void assign_keyinfo(sc *s, const char *keystring)
|
|||
|
||||
if (s->keystr[0] == '^') {
|
||||
assert(strlen(s->keystr) > 1);
|
||||
s->seq = s->keystr[1] - 64;
|
||||
s->keycode = s->keystr[1] - 64;
|
||||
} else if (s->meta) {
|
||||
assert(strlen(s->keystr) > 2);
|
||||
s->seq = tolower((int) s->keystr[2]);
|
||||
s->keycode = tolower((int) s->keystr[2]);
|
||||
} else if (s->keystr[0] == 'F') {
|
||||
assert(strlen(s->keystr) > 1);
|
||||
s->seq = KEY_F0 + atoi(&s->keystr[1]);
|
||||
s->keycode = KEY_F0 + atoi(&s->keystr[1]);
|
||||
} else /* RAWINPUT */
|
||||
s->seq = (int) s->keystr[0];
|
||||
s->keycode = (int) s->keystr[0];
|
||||
|
||||
/* Override some keys which don't bind as easily as we'd like. */
|
||||
if (strcasecmp(s->keystr, "^Space") == 0)
|
||||
s->seq = 0;
|
||||
s->keycode = 0;
|
||||
else if (strcasecmp(s->keystr, "M-Space") == 0)
|
||||
s->seq = (int) ' ';
|
||||
s->keycode = (int) ' ';
|
||||
else {
|
||||
if (!strcasecmp(s->keystr, "Up"))
|
||||
s->seq = KEY_UP;
|
||||
s->keycode = KEY_UP;
|
||||
else if (!strcasecmp(s->keystr, "Down"))
|
||||
s->seq = KEY_DOWN;
|
||||
s->keycode = KEY_DOWN;
|
||||
else if (!strcasecmp(s->keystr, "Left"))
|
||||
s->seq = KEY_LEFT;
|
||||
s->keycode = KEY_LEFT;
|
||||
else if (!strcasecmp(s->keystr, "Right"))
|
||||
s->seq = KEY_RIGHT;
|
||||
s->keycode = KEY_RIGHT;
|
||||
else if (!strcasecmp(s->keystr, "Ins"))
|
||||
s->seq = KEY_IC;
|
||||
s->keycode = KEY_IC;
|
||||
else if (!strcasecmp(s->keystr, "Del"))
|
||||
s->seq = KEY_DC;
|
||||
s->keycode = KEY_DC;
|
||||
else if (!strcasecmp(s->keystr, "Bsp"))
|
||||
s->seq = KEY_BACKSPACE;
|
||||
s->keycode = KEY_BACKSPACE;
|
||||
/* The Tab and Enter keys don't actually produce special codes
|
||||
* but the exact integer values of ^I and ^M. Rebinding the
|
||||
* latter therefore also rebinds Tab and Enter. */
|
||||
else if (!strcasecmp(s->keystr, "Tab"))
|
||||
s->seq = NANO_CONTROL_I;
|
||||
s->keycode = NANO_CONTROL_I;
|
||||
else if (!strcasecmp(s->keystr, "Enter"))
|
||||
s->seq = KEY_ENTER;
|
||||
s->keycode = KEY_ENTER;
|
||||
else if (!strcasecmp(s->keystr, "PgUp"))
|
||||
s->seq = KEY_PPAGE;
|
||||
s->keycode = KEY_PPAGE;
|
||||
else if (!strcasecmp(s->keystr, "PgDn"))
|
||||
s->seq = KEY_NPAGE;
|
||||
s->keycode = KEY_NPAGE;
|
||||
else if (!strcasecmp(s->keystr, "Home"))
|
||||
s->seq = KEY_HOME;
|
||||
s->keycode = KEY_HOME;
|
||||
else if (!strcasecmp(s->keystr, "End"))
|
||||
s->seq = KEY_END;
|
||||
s->keycode = KEY_END;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -436,11 +436,11 @@ typedef struct rcoption {
|
|||
|
||||
typedef struct sc {
|
||||
char *keystr;
|
||||
/* The shortcut key for a function, ASCII version. */
|
||||
/* The string that describes a keystroke, like "^C" or "M-R". */
|
||||
bool meta;
|
||||
/* Whether this is a Meta keystroke. */
|
||||
int seq;
|
||||
/* The actual sequence to check once the type is determined. */
|
||||
int keycode;
|
||||
/* The integer that, together with meta, identifies the keystroke. */
|
||||
int menus;
|
||||
/* Which menus this applies to. */
|
||||
void (*scfunc)(void);
|
||||
|
|
|
@ -474,14 +474,14 @@ void parse_binding(char *ptr, bool dobind)
|
|||
assign_keyinfo(newsc, keycopy);
|
||||
|
||||
/* Do not allow rebinding a frequent escape-sequence starter: Esc [. */
|
||||
if (newsc->meta && newsc->seq == 91) {
|
||||
if (newsc->meta && newsc->keycode == 91) {
|
||||
rcfile_error(N_("Sorry, keystroke \"%s\" may not be rebound"), newsc->keystr);
|
||||
free(newsc);
|
||||
goto free_copy;
|
||||
}
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "s->keystr = \"%s\"\n", newsc->keystr);
|
||||
fprintf(stderr, "s->seq = \"%d\"\n", newsc->seq);
|
||||
fprintf(stderr, "s->keycode = \"%d\"\n", newsc->keycode);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -591,7 +591,7 @@ int parse_kbinput(WINDOW *win)
|
|||
#endif
|
||||
/* Slang doesn't support KEY_CANCEL. */
|
||||
case KEY_CANCEL:
|
||||
retval = first_sc_for(currmenu, do_cancel)->seq;
|
||||
retval = first_sc_for(currmenu, do_cancel)->keycode;
|
||||
break;
|
||||
#endif
|
||||
#ifdef KEY_SUSPEND
|
||||
|
@ -1558,7 +1558,7 @@ int get_mouseinput(int *mouse_x, int *mouse_y, bool allow_shortcuts)
|
|||
/* And put the corresponding key into the keyboard buffer. */
|
||||
if (f != NULL) {
|
||||
const sc *s = first_sc_for(currmenu, f->scfunc);
|
||||
unget_kbinput(s->seq, s->meta);
|
||||
unget_kbinput(s->keycode, s->meta);
|
||||
}
|
||||
return 1;
|
||||
} else
|
||||
|
@ -1616,7 +1616,7 @@ const sc *get_shortcut(int *kbinput)
|
|||
#endif
|
||||
|
||||
for (s = sclist; s != NULL; s = s->next) {
|
||||
if ((s->menus & currmenu) && *kbinput == s->seq &&
|
||||
if ((s->menus & currmenu) && *kbinput == s->keycode &&
|
||||
meta_key == s->meta) {
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "matched seq '%s' (menu is %x from %x)\n",
|
||||
|
|
Loading…
Reference in New Issue