Remove the option to bind a key by keycode with brackets; it never

worked (and no one complained!).  While it's fairly easy to fix, users
should be using keysym names and not keycodes.

Discussed at length months ago with todd@, matthieu@ and Owain.
This commit is contained in:
okan
2013-11-27 16:24:17 +00:00
parent 250f98bf15
commit abf52049b9
3 changed files with 7 additions and 22 deletions

17
conf.c
View File

@@ -479,17 +479,8 @@ conf_bind_kbd(struct conf *c, char *name, char *binding)
substring = conf_bind_getmask(name, &mask);
current_binding->modmask |= mask;
if (substring[0] == '[' &&
substring[strlen(substring)-1] == ']') {
sscanf(substring, "[%d]", &current_binding->keycode);
current_binding->keysym = NoSymbol;
} else {
current_binding->keycode = 0;
current_binding->keysym = XStringToKeysym(substring);
}
if (current_binding->keysym == NoSymbol &&
current_binding->keycode == 0) {
current_binding->keysym = XStringToKeysym(substring);
if (current_binding->keysym == NoSymbol) {
free(current_binding);
return;
}
@@ -530,9 +521,7 @@ conf_unbind_kbd(struct conf *c, struct keybinding *unbind)
if (key->modmask != unbind->modmask)
continue;
if ((key->keycode != 0 && key->keysym == NoSymbol &&
key->keycode == unbind->keycode) ||
key->keysym == unbind->keysym) {
if (key->keysym == unbind->keysym) {
TAILQ_REMOVE(&c->keybindingq, key, entry);
if (key->argtype & ARG_CHAR)
free(key->argument.c);