cat / goq
clone

turns a linux box into a private steam streaming appliance: plug in, tap your key, play from another computer

fix: restore WebKit mouse button delivery

Dami committed 7e35f38
commit
7e35f388eaba74ee3e1a44ca0050327a43016bcd
parent
e25820446df5cdea8ab2a6003c66b655e02365ca
author
Dami <dami.etoile@gmail.com>
2 files changed, +27 -14
Msrc/main.js19+++++--------------
Asrc/mouse-input-wiring.test.mjs22++++++++++++++++++++++
M src/main.js +5 -14
@@ -2143,11 +2143,10 @@ canvas.addEventListener('mousemove', (e) => {
21432143 sendInput({ t: 'mm', x, y });21442144 });21452145 2146-function handlePointerDown(e) {2146+function handleMouseDown(e) {21472147 if (!controlMode || !pointerInputAvailable()) return;21482148 if (inputCapabilities.relativePointer) e.stopPropagation();21492149 else if (e.target !== canvas) return;2150- if (e.pointerType !== 'mouse') return;21512150 const btn = browserMouseButtonCode(e.button);21522151 if (btn === null) return;21532152 e.preventDefault();
@@ -2157,33 +2156,25 @@ function handlePointerDown(e) {
21572156 });21582157 }21592158 if (!heldInputs.trackMouseButton(btn)) return;2160- try { canvas.setPointerCapture(e.pointerId); } catch (_) {}21612159 if (!sendInput({ t: 'md', b: btn })) heldInputs.takeMouseButtonRelease(btn);21622160 }21632161 2164-window.addEventListener('pointerdown', handlePointerDown, { capture: true });2162+window.addEventListener('mousedown', handleMouseDown, { capture: true });21652163 2166-function releasePointerButton(e) {2164+function releaseMouseButton(e) {21672165 if (!connected || !pointerInputAvailable()) return;2168- if (e.pointerType !== 'mouse') return;21692166 const btn = browserMouseButtonCode(e.button);21702167 if (btn === null) return;21712168 const release = heldInputs.takeMouseButtonRelease(btn);21722169 if (!release) return;21732170 e.preventDefault();2174- try {2175- if (canvas.hasPointerCapture(e.pointerId)) canvas.releasePointerCapture(e.pointerId);2176- } catch (_) {}21772171 sendInput(release, { release: true });21782172 }21792173 2180-window.addEventListener('pointerup', (e) => {2174+window.addEventListener('mouseup', (e) => {21812175 if (controlMode && inputCapabilities.relativePointer) e.stopPropagation();2182- releasePointerButton(e);2176+ releaseMouseButton(e);21832177 }, { capture: true });2184-window.addEventListener('pointercancel', (e) => {2185- if (e.pointerType === 'mouse') releaseHeldInputs();2186-});21872178 21882179 window.addEventListener('contextmenu', (e) => {21892180 if (!controlMode || !pointerInputAvailable()) return;
A src/mouse-input-wiring.test.mjs +22 -0