From 58255e0e2b7a8d5fef45968d7b8dcb2916ba5d6d Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 27 Jul 2014 22:00:55 +0200 Subject: input: be stricter about rejecting mouse input with --no-input-cursor Apparently this switch means all mouse input should be strictly rejected. Some VO backends (such as X11) explicitly disable all mouse events if this option is set, but others don't. So check them in input.c, which increases consistency. --- input/input.c | 2 ++ input/keycodes.h | 3 +++ 2 files changed, 5 insertions(+) (limited to 'input') diff --git a/input/input.c b/input/input.c index 324f9f250d..ca3f63784d 100644 --- a/input/input.c +++ b/input/input.c @@ -692,6 +692,8 @@ static void mp_input_feed_key(struct input_ctx *ictx, int code, double scale) release_down_cmd(ictx, false); return; } + if (!ictx->opts->enable_mouse_movements && MP_KEY_IS_MOUSE(unmod)) + return; if (unmod == MP_KEY_MOUSE_LEAVE) { update_mouse_section(ictx); struct mp_cmd *cmd = get_cmd_from_keys(ictx, NULL, code); diff --git a/input/keycodes.h b/input/keycodes.h index 9e890fc166..49a7f8d533 100644 --- a/input/keycodes.h +++ b/input/keycodes.h @@ -222,6 +222,9 @@ (MP_KEY_IS_MOUSE_BTN_SINGLE(code) || MP_KEY_IS_MOUSE_BTN_DBL(code) || \ (code) == MP_KEY_MOUSE_MOVE) +#define MP_KEY_IS_MOUSE(code) \ + (MP_KEY_DEPENDS_ON_MOUSE_POS(code) || (code) == MP_KEY_MOUSE_LEAVE) + // 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. -- cgit v1.2.3