From d25e5860c7cfcd4a5349c67f088ed6e4f55ffaed Mon Sep 17 00:00:00 2001 From: ailurux Date: Fri, 16 Feb 2024 15:10:45 +1100 Subject: Only update scrubber if not currently dragging --- lua/playing.lua | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'lua/playing.lua') diff --git a/lua/playing.lua b/lua/playing.lua index 22b3390f..4767e42f 100644 --- a/lua/playing.lua +++ b/lua/playing.lua @@ -112,13 +112,17 @@ return function(opts) } playlist:Object({ w = 3, h = 1 }) -- spacer - local scrubber = screen.root:Bar { + local scrubber = screen.root:Slider { w = lvgl.PCT(100), h = 5, range = { min = 0, max = 100 }, value = 0, } + scrubber:onevent(lvgl.EVENT.RELEASED, function() + playback.position:set(scrubber:value()) + end) + local controls = screen.root:Object { flex = { flex_direction = "row", @@ -147,8 +151,7 @@ return function(opts) local play_pause_btn = controls:Button {} play_pause_btn:onClicked(function() - --playback.playing:set(not playback.playing:get()) - playback.position:set(playback.position:get() + 5) + playback.playing:set(not playback.playing:get()) end) play_pause_btn:focus() local play_pause_img = play_pause_btn:Image { src = img.pause } @@ -183,7 +186,9 @@ return function(opts) cur_time:set { text = format_time(pos) } - scrubber:set { value = pos } + if not scrubber:is_dragged() then + scrubber:set { value = pos } + end end), playback.track:bind(function(track) if not track then return end -- cgit v1.2.3