diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index 479819a390..d8c4900c21 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -63,6 +63,9 @@ Interface changes the old numeric names (mouse_btn0) are deprecated - remove mouse_btn3_dbl and up, since they are only generated for buttons 0-2 (these now print an error when sent from the 'mouse' command) + - rename the axis bindings to wheel_up/down/etc. axis scrolling and mouse + wheel scrolling are now conceptually the same thing + the old axis_up/down names remain as deprecated aliases --- mpv 0.26.0 --- - remove remaining deprecated audio device options, like --alsa-device Some of them were removed in earlier releases. diff --git a/etc/input.conf b/etc/input.conf index 172736cd32..b58d32a3eb 100644 --- a/etc/input.conf +++ b/etc/input.conf @@ -31,18 +31,14 @@ #MBTN_LEFT ignore # don't do anything #MBTN_LEFT_DBL cycle fullscreen # toggle fullscreen on/off #MBTN_RIGHT cycle pause # toggle pause on/off -#WHEEL_UP seek 10 -#WHEEL_DOWN seek -10 -#WHEEL_LEFT add volume -2 -#WHEEL_RIGHT add volume 2 # Mouse wheels, touchpad or other input devices that have axes # if the input devices supports precise scrolling it will also scale the # numeric value accordingly -#AXIS_UP seek 10 -#AXIS_DOWN seek -10 -#AXIS_LEFT seek 5 -#AXIS_RIGHT seek -5 +#WHEEL_UP seek 10 +#WHEEL_DOWN seek -10 +#WHEEL_LEFT add volume -2 +#WHEEL_RIGHT add volume 2 ## Seek units are in seconds, but note that these are limited by keyframes #RIGHT seek 5 diff --git a/input/input.c b/input/input.c index 88527b5974..b3f3d8d93e 100644 --- a/input/input.c +++ b/input/input.c @@ -95,7 +95,7 @@ struct cmd_queue { struct mp_cmd *first; }; -struct axis_state { +struct wheel_state { double dead_zone_accum; double unit_accum; }; @@ -135,11 +135,11 @@ struct input_ctx { bool mouse_mangle, mouse_src_mangle; struct mp_rect mouse_src, mouse_dst; - // Axis state (MP_AXIS_*) - struct axis_state axis_state_y; // MP_AXIS_UP/MP_AXIS_DOWN - struct axis_state axis_state_x; // MP_AXIS_LEFT/MP_AXIS_RIGHT - struct axis_state *axis_current; // Points to axis currently being scrolled - double last_axis_time; // mp_time_sec() of the last axis event + // Wheel state (MP_WHEEL_*) + struct wheel_state wheel_state_y; // MP_WHEEL_UP/MP_WHEEL_DOWN + struct wheel_state wheel_state_x; // MP_WHEEL_LEFT/MP_WHEEL_RIGHT + struct wheel_state *wheel_current; // The direction currently being scrolled + double last_wheel_time; // mp_time_sec() of the last wheel event // List of command binding sections struct cmd_bind_section *cmd_bind_sections; @@ -634,10 +634,10 @@ static void interpret_key(struct input_ctx *ictx, int code, double scale, } } -// Pre-processing for MP_AXIS_* events. If this returns false, the caller +// Pre-processing for MP_WHEEL_* events. If this returns false, the caller // should discard the event. -static bool process_axis(struct input_ctx *ictx, int code, double *scale, - int *scale_units) +static bool process_wheel(struct input_ctx *ictx, int code, double *scale, + int *scale_units) { // Size of the deadzone in scroll units. The user must scroll at least this // much in any direction before their scroll is registered. @@ -650,45 +650,45 @@ static bool process_axis(struct input_ctx *ictx, int code, double *scale, // sent when the user scrolls slowly. static const double UNIT_SCROLL_TIME = 0.5; - // Determine which axis is being scrolled + // Determine which direction is being scrolled double dir; - struct axis_state *state; + struct wheel_state *state; switch (code) { - case MP_AXIS_UP: dir = -1; state = &ictx->axis_state_y; break; - case MP_AXIS_DOWN: dir = +1; state = &ictx->axis_state_y; break; - case MP_AXIS_LEFT: dir = -1; state = &ictx->axis_state_x; break; - case MP_AXIS_RIGHT: dir = +1; state = &ictx->axis_state_x; break; + case MP_WHEEL_UP: dir = -1; state = &ictx->wheel_state_y; break; + case MP_WHEEL_DOWN: dir = +1; state = &ictx->wheel_state_y; break; + case MP_WHEEL_LEFT: dir = -1; state = &ictx->wheel_state_x; break; + case MP_WHEEL_RIGHT: dir = +1; state = &ictx->wheel_state_x; break; default: return true; } // Reset accumulators if it's determined that the user finished scrolling double now = mp_time_sec(); - if (now > ictx->last_axis_time + DEADZONE_SCROLL_TIME) { - ictx->axis_current = NULL; - ictx->axis_state_y.dead_zone_accum = 0; - ictx->axis_state_x.dead_zone_accum = 0; + if (now > ictx->last_wheel_time + DEADZONE_SCROLL_TIME) { + ictx->wheel_current = NULL; + ictx->wheel_state_y.dead_zone_accum = 0; + ictx->wheel_state_x.dead_zone_accum = 0; } - if (now > ictx->last_axis_time + UNIT_SCROLL_TIME) { - ictx->axis_state_y.unit_accum = 0; - ictx->axis_state_x.unit_accum = 0; + if (now > ictx->last_wheel_time + UNIT_SCROLL_TIME) { + ictx->wheel_state_y.unit_accum = 0; + ictx->wheel_state_x.unit_accum = 0; } - ictx->last_axis_time = now; + ictx->last_wheel_time = now; - // Process axis deadzone. A lot of touchpad drivers don't filter scroll - // input, which makes it difficult for the user to send AXIS_UP/DOWN - // without accidentally triggering AXIS_LEFT/RIGHT. We try to fix this by - // implementing a deadzone. When the value of either axis breaks out of the - // deadzone, events from the other axis will be ignored until the user - // finishes scrolling. - if (ictx->axis_current == NULL) { + // Process wheel deadzone. A lot of touchpad drivers don't filter scroll + // input, which makes it difficult for the user to send WHEEL_UP/DOWN + // without accidentally triggering WHEEL_LEFT/RIGHT. We try to fix this by + // implementing a deadzone. When the value of either direction breaks out + // of the deadzone, events from the other direction will be ignored until + // the user finishes scrolling. + if (ictx->wheel_current == NULL) { state->dead_zone_accum += *scale * dir; if (state->dead_zone_accum * dir > DEADZONE_DIST) { - ictx->axis_current = state; + ictx->wheel_current = state; *scale = state->dead_zone_accum * dir; } } - if (ictx->axis_current != state) + if (ictx->wheel_current != state) return false; // Determine scale_units. This is incremented every time the accumulated @@ -724,7 +724,7 @@ static void mp_input_feed_key(struct input_ctx *ictx, int code, double scale, if (!force_mouse && opts->doubleclick_time && MP_KEY_IS_MOUSE_BTN_DBL(unmod)) return; int units = 1; - if (MP_KEY_IS_AXIS(unmod) && !process_axis(ictx, unmod, &scale, &units)) + if (MP_KEY_IS_WHEEL(unmod) && !process_wheel(ictx, unmod, &scale, &units)) return; interpret_key(ictx, code, scale, units); if (code & MP_KEY_STATE_DOWN) { @@ -733,7 +733,7 @@ static void mp_input_feed_key(struct input_ctx *ictx, int code, double scale, now - ictx->last_doubleclick_time < opts->doubleclick_time / 1000.0) { if (code >= MP_MBTN_LEFT && code <= MP_MBTN_RIGHT) { - interpret_key(ictx, code - MP_MOUSE_BASE + MP_MOUSE_DBL_BASE, + interpret_key(ictx, code - MP_MBTN_BASE + MP_MBTN_DBL_BASE, 1, 1); } } @@ -766,7 +766,7 @@ void mp_input_put_key_utf8(struct input_ctx *ictx, int mods, struct bstr t) } } -void mp_input_put_axis(struct input_ctx *ictx, int direction, double value) +void mp_input_put_wheel(struct input_ctx *ictx, int direction, double value) { if (value == 0.0) return; diff --git a/input/input.h b/input/input.h index 0ea054d21b..f00eb9b0e2 100644 --- a/input/input.h +++ b/input/input.h @@ -143,7 +143,7 @@ void mp_input_put_key_utf8(struct input_ctx *ictx, int mods, struct bstr t); // Process scrolling input. Support for precise scrolling. Scales the given // scroll amount add multiplies it with the command (seeking, sub-delay, etc) -void mp_input_put_axis(struct input_ctx *ictx, int direction, double value); +void mp_input_put_wheel(struct input_ctx *ictx, int direction, double value); // Update mouse position (in window coordinates). void mp_input_set_mouse_pos(struct input_ctx *ictx, int x, int y); diff --git a/input/keycodes.c b/input/keycodes.c index 0832616129..81371e20bf 100644 --- a/input/keycodes.c +++ b/input/keycodes.c @@ -117,11 +117,6 @@ static const struct key_name key_names[] = { { MP_AR_VDOWN, "AR_VDOWN" }, { MP_AR_VDOWN_HOLD, "AR_VDOWN_HOLD" }, - { MP_AXIS_UP, "AXIS_UP" }, - { MP_AXIS_DOWN, "AXIS_DOWN" }, - { MP_AXIS_LEFT, "AXIS_LEFT" }, - { MP_AXIS_RIGHT, "AXIS_RIGHT" }, - { MP_KEY_POWER, "POWER" }, { MP_KEY_MENU, "MENU" }, { MP_KEY_PLAY, "PLAY" }, @@ -176,6 +171,10 @@ static const struct key_name key_names[] = { { MP_MBTN_LEFT_DBL, "MOUSE_BTN0_DBL" }, { MP_MBTN_MID_DBL, "MOUSE_BTN1_DBL" }, { MP_MBTN_RIGHT_DBL, "MOUSE_BTN2_DBL" }, + { MP_WHEEL_UP, "AXIS_UP" }, + { MP_WHEEL_DOWN, "AXIS_DOWN" }, + { MP_WHEEL_LEFT, "AXIS_LEFT" }, + { MP_WHEEL_RIGHT, "AXIS_RIGHT" }, { MP_KEY_CLOSE_WIN, "CLOSE_WIN" }, { MP_KEY_MOUSE_MOVE, "MOUSE_MOVE" }, diff --git a/input/keycodes.h b/input/keycodes.h index 65ff99ddb3..e14ad48f80 100644 --- a/input/keycodes.h +++ b/input/keycodes.h @@ -98,40 +98,42 @@ #define MP_KEY_KPENTER (MP_KEY_KEYPAD+13) // Mouse events from VOs -#define MP_MOUSE_BASE ((MP_KEY_BASE+0xA0)|MP_NO_REPEAT_KEY|MP_KEY_EMIT_ON_UP) -#define MP_MBTN_LEFT (MP_MOUSE_BASE+0) -#define MP_MBTN_MID (MP_MOUSE_BASE+1) -#define MP_MBTN_RIGHT (MP_MOUSE_BASE+2) -#define MP_WHEEL_UP (MP_MOUSE_BASE+3) -#define MP_WHEEL_DOWN (MP_MOUSE_BASE+4) -#define MP_WHEEL_LEFT (MP_MOUSE_BASE+5) -#define MP_WHEEL_RIGHT (MP_MOUSE_BASE+6) -#define MP_MBTN_BACK (MP_MOUSE_BASE+7) -#define MP_MBTN_FORWARD (MP_MOUSE_BASE+8) -#define MP_MBTN9 (MP_MOUSE_BASE+9) -#define MP_MBTN10 (MP_MOUSE_BASE+10) -#define MP_MBTN11 (MP_MOUSE_BASE+11) -#define MP_MBTN12 (MP_MOUSE_BASE+12) -#define MP_MBTN13 (MP_MOUSE_BASE+13) -#define MP_MBTN14 (MP_MOUSE_BASE+14) -#define MP_MBTN15 (MP_MOUSE_BASE+15) -#define MP_MBTN16 (MP_MOUSE_BASE+16) -#define MP_MBTN17 (MP_MOUSE_BASE+17) -#define MP_MBTN18 (MP_MOUSE_BASE+18) -#define MP_MBTN19 (MP_MOUSE_BASE+19) -#define MP_MOUSE_END (MP_MOUSE_BASE+20) +#define MP_MBTN_BASE ((MP_KEY_BASE+0xA0)|MP_NO_REPEAT_KEY|MP_KEY_EMIT_ON_UP) +#define MP_MBTN_LEFT (MP_MBTN_BASE+0) +#define MP_MBTN_MID (MP_MBTN_BASE+1) +#define MP_MBTN_RIGHT (MP_MBTN_BASE+2) +#define MP_WHEEL_UP (MP_MBTN_BASE+3) +#define MP_WHEEL_DOWN (MP_MBTN_BASE+4) +#define MP_WHEEL_LEFT (MP_MBTN_BASE+5) +#define MP_WHEEL_RIGHT (MP_MBTN_BASE+6) +#define MP_MBTN_BACK (MP_MBTN_BASE+7) +#define MP_MBTN_FORWARD (MP_MBTN_BASE+8) +#define MP_MBTN9 (MP_MBTN_BASE+9) +#define MP_MBTN10 (MP_MBTN_BASE+10) +#define MP_MBTN11 (MP_MBTN_BASE+11) +#define MP_MBTN12 (MP_MBTN_BASE+12) +#define MP_MBTN13 (MP_MBTN_BASE+13) +#define MP_MBTN14 (MP_MBTN_BASE+14) +#define MP_MBTN15 (MP_MBTN_BASE+15) +#define MP_MBTN16 (MP_MBTN_BASE+16) +#define MP_MBTN17 (MP_MBTN_BASE+17) +#define MP_MBTN18 (MP_MBTN_BASE+18) +#define MP_MBTN19 (MP_MBTN_BASE+19) +#define MP_MBTN_END (MP_MBTN_BASE+20) #define MP_KEY_IS_MOUSE_BTN_SINGLE(code) \ - ((code) >= MP_MOUSE_BASE && (code) < MP_MOUSE_END) + ((code) >= MP_MBTN_BASE && (code) < MP_MBTN_END) +#define MP_KEY_IS_WHEEL(code) \ + ((code) >= MP_WHEEL_UP && (code) < MP_WHEEL_RIGHT) -#define MP_MOUSE_DBL_BASE ((MP_KEY_BASE+0xC0)|MP_NO_REPEAT_KEY) -#define MP_MBTN_LEFT_DBL (MP_MOUSE_DBL_BASE+0) -#define MP_MBTN_MID_DBL (MP_MOUSE_DBL_BASE+1) -#define MP_MBTN_RIGHT_DBL (MP_MOUSE_DBL_BASE+2) -#define MP_MOUSE_DBL_END (MP_MOUSE_DBL_BASE+20) +#define MP_MBTN_DBL_BASE ((MP_KEY_BASE+0xC0)|MP_NO_REPEAT_KEY) +#define MP_MBTN_LEFT_DBL (MP_MBTN_DBL_BASE+0) +#define MP_MBTN_MID_DBL (MP_MBTN_DBL_BASE+1) +#define MP_MBTN_RIGHT_DBL (MP_MBTN_DBL_BASE+2) +#define MP_MBTN_DBL_END (MP_MBTN_DBL_BASE+20) #define MP_KEY_IS_MOUSE_BTN_DBL(code) \ - ((code) >= MP_MOUSE_DBL_BASE && (code) < MP_MOUSE_DBL_END) + ((code) >= MP_MBTN_DBL_BASE && (code) < MP_MBTN_DBL_END) // Apple Remote input module #define MP_AR_BASE (MP_KEY_BASE+0xE0) @@ -150,17 +152,6 @@ #define MP_AR_VDOWN (MP_AR_BASE + 12) #define MP_AR_VDOWN_HOLD (MP_AR_BASE + 13) -// Mouse wheels or touchpad input -#define MP_AXIS_BASE (MP_KEY_BASE+0x100) -#define MP_AXIS_UP (MP_AXIS_BASE+0) -#define MP_AXIS_DOWN (MP_AXIS_BASE+1) -#define MP_AXIS_LEFT (MP_AXIS_BASE+2) -#define MP_AXIS_RIGHT (MP_AXIS_BASE+3) -#define MP_AXIS_END (MP_AXIS_BASE+4) - -#define MP_KEY_IS_AXIS(code) \ - ((code) >= MP_AXIS_BASE && (code) < MP_AXIS_END) - // Reserved area. Can be used for keys that have no explicit names assigned, // but should be mappable by the user anyway. #define MP_KEY_UNKNOWN_RESERVED_START (MP_KEY_BASE+0x10000) @@ -183,12 +174,10 @@ // Whether to dispatch the key binding by current mouse position. #define MP_KEY_DEPENDS_ON_MOUSE_POS(code) \ - (MP_KEY_IS_MOUSE_CLICK(code) || MP_KEY_IS_AXIS(code) || \ - (code) == MP_KEY_MOUSE_MOVE) + (MP_KEY_IS_MOUSE_CLICK(code) || (code) == MP_KEY_MOUSE_MOVE) #define MP_KEY_IS_MOUSE(code) \ - (MP_KEY_IS_MOUSE_CLICK(code) || MP_KEY_IS_AXIS(code) || \ - MP_KEY_IS_MOUSE_MOVE(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) diff --git a/player/command.c b/player/command.c index 6056fb8d8c..6dc619d0eb 100644 --- a/player/command.c +++ b/player/command.c @@ -5601,12 +5601,12 @@ int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *re return -1; } const bool dbc = cmd->args[3].v.i; - if (dbc && button > (MP_MBTN_RIGHT - MP_MOUSE_BASE)) { + if (dbc && button > (MP_MBTN_RIGHT - MP_MBTN_BASE)) { MP_ERR(mpctx, "%d is not a valid mouse button for double-clicks.\n", button); return -1; } - button += dbc ? MP_MOUSE_DBL_BASE : MP_MOUSE_BASE; + button += dbc ? MP_MBTN_DBL_BASE : MP_MBTN_BASE; mp_input_set_mouse_pos_artificial(mpctx->input, x, y); mp_input_put_key_artificial(mpctx->input, button); break; diff --git a/player/lua/osc.lua b/player/lua/osc.lua index 1359260521..e4faf6c0cc 100644 --- a/player/lua/osc.lua +++ b/player/lua/osc.lua @@ -2304,8 +2304,6 @@ mp.set_key_bindings({ function(e) process_event("mbtn_right", "down") end}, {"wheel_up", function(e) process_event("wheel_up", "press") end}, {"wheel_down", function(e) process_event("wheel_down", "press") end}, - {"axis_up", function(e) process_event("wheel_up", "press") end}, - {"axis_down", function(e) process_event("wheel_down", "press") end}, {"mbtn_left_dbl", "ignore"}, {"shift+mbtn_left_dbl", "ignore"}, {"mbtn_right_dbl", "ignore"}, diff --git a/video/out/cocoa/events_view.m b/video/out/cocoa/events_view.m index 0bf434caf3..4a839b727e 100644 --- a/video/out/cocoa/events_view.m +++ b/video/out/cocoa/events_view.m @@ -239,13 +239,13 @@ if (fabs([event deltaY]) >= fabs([event deltaX])) { delta = [event deltaY] * 0.1; - cmd = delta > 0 ? MP_AXIS_UP : MP_AXIS_DOWN; + cmd = delta > 0 ? MP_WHEEL_UP : MP_WHEEL_DOWN; } else { delta = [event deltaX] * 0.1; - cmd = delta > 0 ? MP_AXIS_RIGHT : MP_AXIS_LEFT; + cmd = delta > 0 ? MP_WHEEL_RIGHT : MP_WHEEL_LEFT; } - [self.adapter putAxis:cmd delta:fabs(delta)]; + [self.adapter putWheel:cmd delta:fabs(delta)]; } - (void)scrollWheel:(NSEvent *)event diff --git a/video/out/cocoa/mpvadapter.h b/video/out/cocoa/mpvadapter.h index 7a858f56ab..69b3b1ad66 100644 --- a/video/out/cocoa/mpvadapter.h +++ b/video/out/cocoa/mpvadapter.h @@ -22,7 +22,7 @@ - (void)setNeedsResize; - (void)signalMouseMovement:(NSPoint)point; - (void)putKey:(int)mpkey withModifiers:(int)modifiers; -- (void)putAxis:(int)mpkey delta:(float)delta; +- (void)putWheel:(int)mpkey delta:(float)delta; - (void)putCommand:(char*)cmd; - (void)handleFilesArray:(NSArray *)files; - (void)didChangeWindowedScreenProfile:(NSNotification *)notification; diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m index e0f0f785e0..abead0fb53 100644 --- a/video/out/cocoa_common.m +++ b/video/out/cocoa_common.m @@ -994,9 +994,9 @@ int vo_cocoa_control(struct vo *vo, int *events, int request, void *arg) cocoa_put_key_with_modifiers(mpkey, modifiers); } -- (void)putAxis:(int)mpkey delta:(float)delta; +- (void)putWheel:(int)mpkey delta:(float)delta; { - mp_input_put_axis(self.vout->input_ctx, mpkey, delta); + mp_input_put_wheel(self.vout->input_ctx, mpkey, delta); } - (void)putCommand:(char*)cmd diff --git a/video/out/vo_caca.c b/video/out/vo_caca.c index 942c0aa37d..46090afc4a 100644 --- a/video/out/vo_caca.c +++ b/video/out/vo_caca.c @@ -179,11 +179,11 @@ static void check_events(struct vo *vo) break; case CACA_EVENT_MOUSE_PRESS: mp_input_put_key(vo->input_ctx, - (MP_MOUSE_BASE + cev.data.mouse.button - 1) | MP_KEY_STATE_DOWN); + (MP_MBTN_BASE + cev.data.mouse.button - 1) | MP_KEY_STATE_DOWN); break; case CACA_EVENT_MOUSE_RELEASE: mp_input_put_key(vo->input_ctx, - (MP_MOUSE_BASE + cev.data.mouse.button - 1) | MP_KEY_STATE_UP); + (MP_MBTN_BASE + cev.data.mouse.button - 1) | MP_KEY_STATE_UP); break; case CACA_EVENT_KEY_PRESS: { diff --git a/video/out/vo_sdl.c b/video/out/vo_sdl.c index a99eebd46d..1667b2c633 100644 --- a/video/out/vo_sdl.c +++ b/video/out/vo_sdl.c @@ -608,11 +608,11 @@ static void wait_events(struct vo *vo, int64_t until_time_us) break; case SDL_MOUSEBUTTONDOWN: mp_input_put_key(vo->input_ctx, - (MP_MOUSE_BASE + ev.button.button - 1) | MP_KEY_STATE_DOWN); + (MP_MBTN_BASE + ev.button.button - 1) | MP_KEY_STATE_DOWN); break; case SDL_MOUSEBUTTONUP: mp_input_put_key(vo->input_ctx, - (MP_MOUSE_BASE + ev.button.button - 1) | MP_KEY_STATE_UP); + (MP_MBTN_BASE + ev.button.button - 1) | MP_KEY_STATE_UP); break; case SDL_MOUSEWHEEL: break; diff --git a/video/out/w32_common.c b/video/out/w32_common.c index e0b26b1183..b93a4fdaa6 100644 --- a/video/out/w32_common.c +++ b/video/out/w32_common.c @@ -441,10 +441,10 @@ static void handle_mouse_wheel(struct vo_w32_state *w32, bool horiz, int val) { int code; if (horiz) - code = val > 0 ? MP_AXIS_RIGHT : MP_AXIS_LEFT; + code = val > 0 ? MP_WHEEL_RIGHT : MP_WHEEL_LEFT; else - code = val > 0 ? MP_AXIS_UP : MP_AXIS_DOWN; - mp_input_put_axis(w32->input_ctx, code | mod_state(w32), abs(val) / 120.); + code = val > 0 ? MP_WHEEL_UP : MP_WHEEL_DOWN; + mp_input_put_wheel(w32->input_ctx, code | mod_state(w32), abs(val) / 120.); } static void signal_events(struct vo_w32_state *w32, int events) diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index 22cf23dfa6..181723a0e0 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -470,18 +470,18 @@ static void pointer_handle_axis(void *data, // scale it down to 1.00 for multipliying it with the commands if (axis == WL_POINTER_AXIS_VERTICAL_SCROLL) { if (value > 0) - mp_input_put_axis(wl->vo->input_ctx, MP_AXIS_DOWN, + mp_input_put_wheel(wl->vo->input_ctx, MP_WHEEL_DOWN, wl_fixed_to_double(value)*0.1); if (value < 0) - mp_input_put_axis(wl->vo->input_ctx, MP_AXIS_UP, + mp_input_put_wheel(wl->vo->input_ctx, MP_WHEEL_UP, wl_fixed_to_double(value)*-0.1); } else if (axis == WL_POINTER_AXIS_HORIZONTAL_SCROLL) { if (value > 0) - mp_input_put_axis(wl->vo->input_ctx, MP_AXIS_RIGHT, + mp_input_put_wheel(wl->vo->input_ctx, MP_WHEEL_RIGHT, wl_fixed_to_double(value)*0.1); if (value < 0) - mp_input_put_axis(wl->vo->input_ctx, MP_AXIS_LEFT, + mp_input_put_wheel(wl->vo->input_ctx, MP_WHEEL_LEFT, wl_fixed_to_double(value)*-0.1); } } diff --git a/video/out/x11_common.c b/video/out/x11_common.c index 6fb4e94995..5f2c658a9c 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -1136,7 +1136,7 @@ void vo_x11_check_events(struct vo *vo) if (Event.xbutton.button == 1) x11->win_drag_button1_down = true; mp_input_put_key(x11->input_ctx, - (MP_MOUSE_BASE + Event.xbutton.button - 1) | + (MP_MBTN_BASE + Event.xbutton.button - 1) | get_mods(Event.xbutton.state) | MP_KEY_STATE_DOWN); long msg[4] = {XEMBED_REQUEST_FOCUS}; vo_x11_xembed_send_message(x11, msg); @@ -1145,7 +1145,7 @@ void vo_x11_check_events(struct vo *vo) if (Event.xbutton.button == 1) x11->win_drag_button1_down = false; mp_input_put_key(x11->input_ctx, - (MP_MOUSE_BASE + Event.xbutton.button - 1) | + (MP_MBTN_BASE + Event.xbutton.button - 1) | get_mods(Event.xbutton.state) | MP_KEY_STATE_UP); break; case MapNotify: