summaryrefslogtreecommitdiffstats
path: root/input
diff options
context:
space:
mode:
Diffstat (limited to 'input')
-rw-r--r--input/input.c4
-rw-r--r--input/keycodes.c2
-rw-r--r--input/keycodes.h3
3 files changed, 8 insertions, 1 deletions
diff --git a/input/input.c b/input/input.c
index 58907ccd50..24281fe99e 100644
--- a/input/input.c
+++ b/input/input.c
@@ -446,7 +446,9 @@ static mp_cmd_t *get_cmd_from_keys(struct input_ctx *ictx, char *force_section,
return handle_test(ictx, code);
struct cmd_bind *cmd = find_any_bind_for_key(ictx, force_section, code);
- if (cmd == NULL) {
+ if (!cmd)
+ cmd = find_any_bind_for_key(ictx, force_section, MP_KEY_UNMAPPED);
+ if (!cmd) {
if (code == MP_KEY_CLOSE_WIN)
return mp_input_parse_cmd_strv(ictx->log, (const char*[]){"quit", 0});
int msgl = MSGL_WARN;
diff --git a/input/keycodes.c b/input/keycodes.c
index 21a3c10e64..d6c07288c2 100644
--- a/input/keycodes.c
+++ b/input/keycodes.c
@@ -171,6 +171,8 @@ static const struct key_name key_names[] = {
{ MP_KEY_MOUSE_LEAVE, "MOUSE_LEAVE" },
{ MP_KEY_MOUSE_ENTER, "MOUSE_ENTER" },
+ { MP_KEY_UNMAPPED, "UNMAPPED" },
+
{ 0, NULL }
};
diff --git a/input/keycodes.h b/input/keycodes.h
index d95edb1f45..da88d52c37 100644
--- a/input/keycodes.h
+++ b/input/keycodes.h
@@ -200,6 +200,9 @@
#define MP_KEY_IS_MOUSE(code) \
(MP_KEY_IS_MOUSE_CLICK(code) || MP_KEY_IS_MOUSE_MOVE(code))
+// No input source should generate this.
+#define MP_KEY_UNMAPPED (MP_KEY_INTERN+4)
+
// Emit a command even on key-up (normally key-up is ignored). This means by
// default they binding will be triggered on key-up instead of key-down.
// This is a fixed part of the keycode, not a modifier than can change.