From 593ac005ec7e0cd8743a104961cf77a5e241e0cf Mon Sep 17 00:00:00 2001 From: Tobias Leuschner Date: Sun, 22 Feb 2026 10:53:57 +0100 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20Unterst=C3=BCtzung=20f=C3=BCr=20sof?= =?UTF-8?q?ortige=20Auswahl=20hinzu,=20wenn=20mehr=20als=203=20Finger=20er?= =?UTF-8?q?kannt=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/app.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/js/app.js b/js/app.js index c6f9657..a449152 100644 --- a/js/app.js +++ b/js/app.js @@ -3,6 +3,7 @@ document.addEventListener('DOMContentLoaded', function(){ const touches = new Map(); // id -> {el,x,y} let selecting = false; let selectionDone = false; + let selectionTimer = null; function createFinger(t){ const id = (t.identifier !== undefined && t.identifier !== null) ? String(t.identifier) : ('m'+Date.now()); @@ -102,6 +103,8 @@ document.addEventListener('DOMContentLoaded', function(){ } function cancelSelection(){ + clearTimeout(selectionTimer); + selectionTimer = null; selecting = false; selectionDone = false; for(const entry of touches.values()){ entry.el.classList.remove('highlight','lost','winner','pulse'); entry.el.style.opacity = '1'; } @@ -123,8 +126,10 @@ document.addEventListener('DOMContentLoaded', function(){ e.preventDefault(); const changed = Array.from(e.changedTouches || []); changed.forEach(t=>createFinger(t)); - cancelSelection(); - startSelectionIfNeeded(); + if(!selectionDone){ + clearTimeout(selectionTimer); + selectionTimer = setTimeout(startSelectionIfNeeded, 700); + } }, {passive:false}); stage.addEventListener('touchmove', function(e){ e.preventDefault();