From 47cf3d13e54a57f88791dff5bf9ef5c3b74893ed Mon Sep 17 00:00:00 2001 From: Honey Date: Mon, 18 May 2026 23:39:02 +0200 Subject: [PATCH] fix: use pointerdown+pointerType to block touch seeks on bottom bar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mousedown does not expose the input source — replaced with pointerdown which carries pointerType='touch', allowing noTouch=true to reliably skip touch input without affecting mouse/stylus on PC. Co-Authored-By: Claude Sonnet 4.6 --- src/player.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/player.js b/src/player.js index 4cd923f..1326029 100644 --- a/src/player.js +++ b/src/player.js @@ -735,12 +735,13 @@ function _initBarScrub(bar, fill, onMove, noTouch = false) { _touchMoved = false; }, {passive:true}); } - bar.addEventListener('mousedown', e => { + bar.addEventListener('pointerdown', e => { + if (noTouch && e.pointerType === 'touch') return; // bottom bar: mouse/stylus only startScrub(getPos(e.clientX)); e.preventDefault(); const mm = e2 => { if(S._scrubbing) moveScrub(getPos(e2.clientX)); }; - const mu = e2 => { if(S._scrubbing) endScrub(getPos(e2.clientX)); document.removeEventListener('mousemove',mm); document.removeEventListener('mouseup',mu); }; - document.addEventListener('mousemove', mm); - document.addEventListener('mouseup', mu); + const mu = e2 => { if(S._scrubbing) endScrub(getPos(e2.clientX)); document.removeEventListener('pointermove',mm); document.removeEventListener('pointerup',mu); }; + document.addEventListener('pointermove', mm); + document.addEventListener('pointerup', mu); }); }