From ad590091079d41346341050b340ff319ecf4063f Mon Sep 17 00:00:00 2001 From: agent Date: Tue, 21 Jul 2026 07:52:06 +0000 Subject: [PATCH] Fix: preventDefault aus pointerdown entfernt (bricht iOS-Safari pointer-sequence) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Diagnose: Lukas' Browser-Logs zeigen Service-Worker-Activity (sw.js?v=2026.5.18-...) und alle Wiki-Assets werden via SW geladen. Wiki selbst registriert keinen SW, der SW kommt von woanders. Echter Fix: preventDefault() in onDown() entfernt. Auf iOS Safari verliert das Event-System die nachfolgenden Pointer-Move-Events wenn preventDefault() auf pointerdown gefeuert wird — das Event wird quasi 'konsumiert' bevor der Browser die Touch-Sequenz weiterverarbeitet. Außerdem: touchstart ist jetzt passive: true (preventDefault dort war illegal und hätte Synthetic-Click ausgelöst die das Modal geschlossen hätte). touchmove und touchend bleiben passive: false damit preventDefault dort funktioniert um Browser-Default-Scroll zu blocken. Lukas' Browser-Console-Log zeigte dass alle Assets via Service-Worker geladen wurden — das deutet auf aggressive Cache-Strategie hin, weshalb ein Hard-Reload mit Cache-Buster URL empfehlenswert ist. --- app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app.js b/app.js index ce215d7..992199c 100644 --- a/app.js +++ b/app.js @@ -327,7 +327,7 @@ } function onDown(e) { - e.preventDefault(); + // Don't preventDefault here — breaks iOS-Safari pointer sequence const p = getXY(e, canvas); isDragging = true; moved = false; @@ -387,7 +387,7 @@ canvas.addEventListener('pointerleave', onUp); // Touch events fallback (older iOS Safari 12-) - canvas.addEventListener('touchstart', onDown, { passive: false }); + canvas.addEventListener('touchstart', onDown, { passive: true }); canvas.addEventListener('touchmove', onMove, { passive: false }); canvas.addEventListener('touchend', onUp, { passive: false }); canvas.addEventListener('touchcancel', onUp, { passive: false });