From 40151f8f57406640e4f7f98c0ac00ab1dcffbaac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastjan=20Arti=C4=8D?= Date: Sat, 2 May 2026 07:26:54 +0000 Subject: [PATCH] =?UTF-8?q?STROGI=20marker=20boundaries:=20zelen=20samo=20?= =?UTF-8?q?levo=20od=20center,=20rde=C4=8D=20samo=20desno?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User: 'še vedno mi skače zeleni trikotnik na konec! Naredi da ne gre čez polovico ne en ne drug' Bug analiza: prej Math.min(t, center - 0.1) NI bilo, samo direktna assignment. Če bi user nekje napačno klikal, ali če je drag handle-a spremenil center, marker je pristal na napačni strani. Strogo zdaj: - markerInTime = Math.min(t, center - 0.1) → zelen NIKOLI čez center - markerOutTime = Math.max(t, center + 0.1) → rdeč NIKOLI čez center Plus: po drag-u handle-ja se markerji preverijo: - Če je markerIn na desni strani novega centra → reset na trimStart - Če je markerOut na levi strani novega centra → reset na trimEnd Plus console.log za debug — vidiš v Dev Tools kateri vrednosti uporabljam. --- templates/index.html | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/templates/index.html b/templates/index.html index e2fcf39..12cc967 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1395,7 +1395,12 @@ trimEnd = t; if (video) video.currentTime = t; } + // Sync markerji da ne ostanejo na napačni strani (čez center) + const center = (trimStart + trimEnd) / 2; + if (markerInTime > center - 0.1) markerInTime = trimStart; + if (markerOutTime < center + 0.1) markerOutTime = trimEnd; renderTrim(); + renderMarkers(); } function onPointerUp() { @@ -1478,19 +1483,20 @@ e.preventDefault(); if (video) { if (video.paused) { - // Pred play-em: postavi trikotnik na trenutno pozicijo - // Logika: razdeli prostor po SREDINI clipa - // t < center → IN trikotnik (zelen) - // t > center → OUT trikotnik (rdeč) - // Razlog: če je IN že nastavljen pravilno (60s) in zdaj iščeš - // OUT (klikaš pri 80s blizu desnega handle), naj se premakne OUT. + // STROGO: zelen IN samo v LEVI polovici, rdeč OUT samo v DESNI polovici + // Klik LEVO od center + Enter → IN (zelen) + // Klik DESNO od center + Enter → OUT (rdeč) + // Klik točno NA centru → OUT (default) const t = video.currentTime; const center = (trimStart + trimEnd) / 2; if (t < center) { - markerInTime = t; + // Postavi IN, ampak strogo omeji: ne sme čez center + markerInTime = Math.min(t, center - 0.1); } else { - markerOutTime = t; + // Postavi OUT, ampak strogo omeji: ne sme čez center + markerOutTime = Math.max(t, center + 0.1); } + console.log("[Marker]", { t, center, trimStart, trimEnd, markerInTime, markerOutTime }); renderMarkers(); video.play().catch(() => {}); } else {