From 277d8e801bde328836c2e539c23f7a2e1a69e673 Mon Sep 17 00:00:00 2001 From: willianpm Date: Sun, 8 Mar 2026 01:03:52 +0000 Subject: [PATCH] feat: add mouse wheel support for fullscreen volume control Added event handler to allow adjusting the fullscreen volume using the mouse wheel. Scrolling up unmutes and increases volume, scrolling down decreases volume. Improves user experience for volume adjustments in fullscreen mode. --- js/ui.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/js/ui.js b/js/ui.js index 8fb1cdd..c67168b 100644 --- a/js/ui.js +++ b/js/ui.js @@ -1344,6 +1344,25 @@ export class UIRenderer { updateFsVolumeUI(); }; + const handleFsVolumeWheel = (e) => { + e.preventDefault(); + + const delta = e.deltaY > 0 ? -0.05 : 0.05; + const currentVolume = this.player.userVolume; + const newVolume = Math.max(0, Math.min(1, currentVolume + delta)); + + if (delta > 0 && this.player.muted) { + this.player.setMute(false); + } + + this.player.setVolume(newVolume); + updateFsVolumeUI(); + }; + + [fsVolumeBar, fsVolumeBtn].forEach((el) => + el.addEventListener('wheel', handleFsVolumeWheel, { passive: false }) + ); + const setFsVolume = (e) => { const rect = fsVolumeBar.getBoundingClientRect(); const position = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));