From eb08cd75c1f821e55a6c56eec574c058815384bc Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 10 May 2018 15:57:36 +0200 Subject: input: add a define for the number of mouse buttons and use it (Why the fuck are there up to 20 mouse buttons?) --- input/keycodes.h | 2 ++ player/command.c | 2 +- video/out/x11_common.c | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/input/keycodes.h b/input/keycodes.h index 740ca873fc..604fee53dc 100644 --- a/input/keycodes.h +++ b/input/keycodes.h @@ -135,6 +135,8 @@ #define MP_KEY_IS_MOUSE_BTN_DBL(code) \ ((code) >= MP_MBTN_DBL_BASE && (code) < MP_MBTN_DBL_END) +#define MP_KEY_MOUSE_BTN_COUNT (MP_MBTN_END - MP_MBTN_BASE) + // Apple Remote input module #define MP_AR_BASE (MP_KEY_BASE+0xE0) #define MP_AR_PLAY (MP_AR_BASE + 0) diff --git a/player/command.c b/player/command.c index cc8b609c50..60fb7447e1 100644 --- a/player/command.c +++ b/player/command.c @@ -5757,7 +5757,7 @@ static void cmd_mouse(void *p) mp_input_set_mouse_pos_artificial(mpctx->input, x, y); return; } - if (button < 0 || button >= 20) {// invalid button + if (button < 0 || button >= MP_KEY_MOUSE_BTN_COUNT) {// invalid button MP_ERR(mpctx, "%d is not a valid mouse button number.\n", button); cmd->success = false; return; diff --git a/video/out/x11_common.c b/video/out/x11_common.c index 79aac3f136..25325e760c 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -1133,6 +1133,8 @@ void vo_x11_check_events(struct vo *vo) mp_input_put_key(x11->input_ctx, MP_KEY_MOUSE_ENTER); break; case ButtonPress: + if (Event.xbutton.button - 1 >= MP_KEY_MOUSE_BTN_COUNT) + break; if (Event.xbutton.button == 1) x11->win_drag_button1_down = true; mp_input_put_key(x11->input_ctx, @@ -1142,6 +1144,8 @@ void vo_x11_check_events(struct vo *vo) vo_x11_xembed_send_message(x11, msg); break; case ButtonRelease: + if (Event.xbutton.button - 1 >= MP_KEY_MOUSE_BTN_COUNT) + break; if (Event.xbutton.button == 1) x11->win_drag_button1_down = false; mp_input_put_key(x11->input_ctx, -- cgit v1.2.3