diff options
| author | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2026-01-21 22:57:26 -0800 |
|---|---|---|
| committer | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2026-01-21 22:57:26 -0800 |
| commit | 8c9e5db8165c5faa92fafed8bbbcbc44e77ca2b5 (patch) | |
| tree | 75bb54b40716a0f8426cf2b46b9d138f20395633 /main.lua | |
| parent | 7b916d34e8116a1837a5511ec32fa29490fefd0e (diff) | |
| download | mpv-iptv-menu-8c9e5db8165c5faa92fafed8bbbcbc44e77ca2b5.tar.gz mpv-iptv-menu-8c9e5db8165c5faa92fafed8bbbcbc44e77ca2b5.tar.xz | |
keep offset when scrolling with mouse wheel
Diffstat (limited to 'main.lua')
| -rw-r--r-- | main.lua | 56 |
1 files changed, 48 insertions, 8 deletions
@@ -176,6 +176,26 @@ local function cursor_page_down() {keep_offset = true, margin = config.scroll_margin}) end +local function cursor_wheel_up() + set_cursor(state:menu().cursor - 1, {keep_offset = true}) +end + +local function cursor_wheel_down() + set_cursor(state:menu().cursor + 1, {keep_offset = true}) +end + +local function cursor_wheel_page_up() + set_cursor( + state:menu().cursor - osd:menu_lines(state), + {keep_offset = true}) +end + +local function cursor_wheel_page_down() + set_cursor( + state:menu().cursor + osd:menu_lines(state), + {keep_offset = true}) +end + local function cursor_to_object(id) for i, v in ipairs(state:menu().options) do if v.id == id then @@ -239,6 +259,26 @@ local function move_option_page_down() {keep_offset = true, margin = config.scroll_margin}) end +local function move_option_wheel_up() + move_option(state:menu().cursor - 1, {keep_offset = true}) +end + +local function move_option_wheel_down() + move_option(state:menu().cursor + 1, {keep_offset = true}) +end + +local function move_option_wheel_page_up() + move_option( + state:menu().cursor - osd:menu_lines(state), + {keep_offset = true}) +end + +local function move_option_wheel_page_down() + move_option( + state:menu().cursor + osd:menu_lines(state), + {keep_offset = true}) +end + local function sort_options(options) local scores = {} for _, v in ipairs(options) do @@ -1187,10 +1227,10 @@ binding_state.mappings.MENU = { ['PGDWN'] = {cursor_page_down, 'repeat'}, ['HOME'] = {cursor_start}, ['END'] = {cursor_end}, - ['WHEEL_UP'] = {cursor_up, 'repeat'}, - ['WHEEL_DOWN'] = {cursor_down, 'repeat'}, - ['Shift+WHEEL_UP'] = {cursor_page_up, 'repeat'}, - ['Shift+WHEEL_DOWN'] = {cursor_page_down, 'repeat'}, + ['WHEEL_UP'] = {cursor_wheel_up, 'repeat'}, + ['WHEEL_DOWN'] = {cursor_wheel_down, 'repeat'}, + ['Shift+WHEEL_UP'] = {cursor_wheel_page_up, 'repeat'}, + ['Shift+WHEEL_DOWN'] = {cursor_wheel_page_down, 'repeat'}, ['Alt+k'] = {move_option_up, 'repeat'}, ['Alt+j'] = {move_option_down, 'repeat'}, @@ -1204,10 +1244,10 @@ binding_state.mappings.MENU = { ['Alt+PGDWN'] = {move_option_page_down, 'repeat'}, ['Alt+HOME'] = {move_option_start}, ['Alt+END'] = {move_option_end}, - ['Alt+WHEEL_UP'] = {move_option_up, 'repeat'}, - ['Alt+WHEEL_DOWN'] = {move_option_down, 'repeat'}, - ['Shift+Alt+WHEEL_UP'] = {move_option_page_up, 'repeat'}, - ['Shift+Alt+WHEEL_DOWN'] = {move_option_page_down, 'repeat'}, + ['Alt+WHEEL_UP'] = {move_option_wheel_up, 'repeat'}, + ['Alt+WHEEL_DOWN'] = {move_option_wheel_down, 'repeat'}, + ['Shift+Alt+WHEEL_UP'] = {move_option_wheel_page_up, 'repeat'}, + ['Shift+Alt+WHEEL_DOWN'] = {move_option_wheel_page_down, 'repeat'}, } binding_state.mappings.SEARCH = { |
