summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2026-01-21 22:57:26 -0800
committerDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2026-01-21 22:57:26 -0800
commit8c9e5db8165c5faa92fafed8bbbcbc44e77ca2b5 (patch)
tree75bb54b40716a0f8426cf2b46b9d138f20395633
parent7b916d34e8116a1837a5511ec32fa29490fefd0e (diff)
downloadmpv-iptv-menu-8c9e5db8165c5faa92fafed8bbbcbc44e77ca2b5.tar.gz
mpv-iptv-menu-8c9e5db8165c5faa92fafed8bbbcbc44e77ca2b5.tar.xz
keep offset when scrolling with mouse wheel
-rw-r--r--main.lua56
1 files changed, 48 insertions, 8 deletions
diff --git a/main.lua b/main.lua
index f3a1915..521c0d5 100644
--- a/main.lua
+++ b/main.lua
@@ -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 = {