summaryrefslogtreecommitdiffstats
path: root/video/out/w32_common.c
diff options
context:
space:
mode:
authorJames Ross-Gowan <rossy@jrg.systems>2017-08-08 21:34:38 +1000
committerJames Ross-Gowan <rossy@jrg.systems>2017-09-03 20:31:44 +1000
commit957e9a37db6611fe0879bd2097131df5e09afd47 (patch)
treeb346371417acd0476a60e2c1ecde20c8548d14ba /video/out/w32_common.c
parent449d9725c91af467b154817dfd0603d80ba7f00b (diff)
downloadmpv-957e9a37db6611fe0879bd2097131df5e09afd47.tar.bz2
mpv-957e9a37db6611fe0879bd2097131df5e09afd47.tar.xz
input: use mnemonic names for mouse buttons
mpv's mouse button numbering is based on X11 button numbering, which allows for an arbitrary number of buttons and includes mouse wheel input as buttons 3-6. This button numbering was used throughout the codebase and exposed in input.conf, and it was difficult to remember which physical button each number actually referred to and which referred to the scroll wheel. In practice, PC mice only have between two and five buttons and one or two scroll wheel axes, which are more or less in the same location and have more or less the same function. This allows us to use names to refer to the buttons instead of numbers, which makes input.conf syntax a lot easier to remember. It also makes the syntax robust to changes in mpv's underlying numbering. The old MOUSE_BTNx names are still understood as deprecated aliases of the named buttons. This changes both the input.conf syntax and the MP_MOUSE_BTNx symbols in the codebase, since I think both would benefit from using names over numbers, especially since some platforms don't use X11 button numbering and handle different mouse buttons in different windowing system events. This also makes the names shorter, since otherwise they would be pretty long, and it removes the high-numbered MOUSE_BTNx_DBL names, since they weren't used. Names are the same as used in Qt: https://doc.qt.io/qt-5/qt.html#MouseButton-enum
Diffstat (limited to 'video/out/w32_common.c')
-rw-r--r--video/out/w32_common.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/video/out/w32_common.c b/video/out/w32_common.c
index 26edde17eb..e0b26b1183 100644
--- a/video/out/w32_common.c
+++ b/video/out/w32_common.c
@@ -413,13 +413,13 @@ static bool handle_mouse_down(struct vo_w32_state *w32, int btn, int x, int y)
btn |= mod_state(w32);
mp_input_put_key(w32->input_ctx, btn | MP_KEY_STATE_DOWN);
- if (btn == MP_MOUSE_BTN0 && !w32->current_fs &&
+ if (btn == MP_MBTN_LEFT && !w32->current_fs &&
!mp_input_test_dragging(w32->input_ctx, x, y))
{
// Window dragging hack
ReleaseCapture();
SendMessage(w32->window, WM_NCLBUTTONDOWN, HTCAPTION, 0);
- mp_input_put_key(w32->input_ctx, MP_MOUSE_BTN0 | MP_KEY_STATE_UP);
+ mp_input_put_key(w32->input_ctx, MP_MBTN_LEFT | MP_KEY_STATE_UP);
// Indicate the message was handled, so DefWindowProc won't be called
return true;
@@ -1096,26 +1096,26 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
break;
}
case WM_LBUTTONDOWN:
- if (handle_mouse_down(w32, MP_MOUSE_BTN0, GET_X_LPARAM(lParam),
- GET_Y_LPARAM(lParam)))
+ if (handle_mouse_down(w32, MP_MBTN_LEFT, GET_X_LPARAM(lParam),
+ GET_Y_LPARAM(lParam)))
return 0;
break;
case WM_LBUTTONUP:
- handle_mouse_up(w32, MP_MOUSE_BTN0);
+ handle_mouse_up(w32, MP_MBTN_LEFT);
break;
case WM_MBUTTONDOWN:
- handle_mouse_down(w32, MP_MOUSE_BTN1, GET_X_LPARAM(lParam),
- GET_Y_LPARAM(lParam));
+ handle_mouse_down(w32, MP_MBTN_MID, GET_X_LPARAM(lParam),
+ GET_Y_LPARAM(lParam));
break;
case WM_MBUTTONUP:
- handle_mouse_up(w32, MP_MOUSE_BTN1);
+ handle_mouse_up(w32, MP_MBTN_MID);
break;
case WM_RBUTTONDOWN:
- handle_mouse_down(w32, MP_MOUSE_BTN2, GET_X_LPARAM(lParam),
+ handle_mouse_down(w32, MP_MBTN_RIGHT, GET_X_LPARAM(lParam),
GET_Y_LPARAM(lParam));
break;
case WM_RBUTTONUP:
- handle_mouse_up(w32, MP_MOUSE_BTN2);
+ handle_mouse_up(w32, MP_MBTN_RIGHT);
break;
case WM_MOUSEWHEEL:
handle_mouse_wheel(w32, false, GET_WHEEL_DELTA_WPARAM(wParam));
@@ -1127,11 +1127,12 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
return TRUE;
case WM_XBUTTONDOWN:
handle_mouse_down(w32,
- HIWORD(wParam) == 1 ? MP_MOUSE_BTN7 : MP_MOUSE_BTN8,
- GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
+ HIWORD(wParam) == 1 ? MP_MBTN_BACK : MP_MBTN_FORWARD,
+ GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
break;
case WM_XBUTTONUP:
- handle_mouse_up(w32, HIWORD(wParam) == 1 ? MP_MOUSE_BTN7 : MP_MOUSE_BTN8);
+ handle_mouse_up(w32,
+ HIWORD(wParam) == 1 ? MP_MBTN_BACK : MP_MBTN_FORWARD);
break;
case WM_DISPLAYCHANGE:
force_update_display_info(w32);