Marker assignment: split po sredini clipa (ne po bližini handle-a)

User feedback: 'če kliknemo na konec se premika IN, in ne OUT.
Če je bližje OUT ko kliknemo, se mora premikati OUT trikotnik —
tudi če nismo prej izbrali IN. Če je IN ok potem tega ne delamo.'

Pred (bug):
  distToLeft = |t - trimStart|
  distToRight = |t - trimEnd|
  Če enaka razdalja → IN (default '<=')
  Ko si že popravil IN, distance lahko enaka → klik blizu OUT
  pomotoma premakne IN

Po:
  center = (trimStart + trimEnd) / 2
  if t < center → IN
  else → OUT

Logika: leva polovica clipa = IN domain, desna = OUT domain.
Klik kjerkoli blizu desnega handle (= konec) bo VEDNO premaknil OUT.
Klik kjerkoli blizu levega handle (= začetek) bo VEDNO premaknil IN.
Tudi če si že popravil IN, popravljanje OUT ne bo motilo IN markerja.
This commit is contained in:
Sebastjan Artič 2026-05-02 07:02:05 +00:00
parent c58875c072
commit 129f7d5f33

View File

@ -1453,17 +1453,19 @@
const playPauseHandler = (e) => { const playPauseHandler = (e) => {
const isPlayKey = e.code === "Enter" || e.code === "Space"; const isPlayKey = e.code === "Enter" || e.code === "Space";
if (!isPlayKey) return; if (!isPlayKey) return;
// Ne moti če uporabnik tipka v inputu/textarea
if (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA") return; if (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA") return;
e.preventDefault(); e.preventDefault();
if (video) { if (video) {
if (video.paused) { if (video.paused) {
// Pred play-em: postavi trikotnik na trenutno pozicijo // Pred play-em: postavi trikotnik na trenutno pozicijo
// Loči levi/desni glede na bližino handle-jev // 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.
const t = video.currentTime; const t = video.currentTime;
const distToLeft = Math.abs(t - trimStart); const center = (trimStart + trimEnd) / 2;
const distToRight = Math.abs(t - trimEnd); if (t < center) {
if (distToLeft <= distToRight) {
markerInTime = t; markerInTime = t;
} else { } else {
markerOutTime = t; markerOutTime = t;