From 17676de7a233215548ff3da13962acc8cb0ed04d Mon Sep 17 00:00:00 2001 From: skal Date: Thu, 12 Feb 2026 10:18:09 +0100 Subject: timeline editor: quantize grid, drag fixes, hotkeys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: - Sequence dragging with scroll offset - Double-click collapse/expand (DOM recreation issue) - Collapsed sequence dragging (removed stopPropagation) Features: - Quantize dropdown (Off, 1/32→1 beat) replaces snap-to-beat checkbox - Works in both beat and second display modes - Hotkeys: 0=Off, 1=1beat, 2=1/2, 3=1/4, 4=1/8, 5=1/16, 6=1/32 - Separate "Show Beats" toggle for display vs snap behavior Technical: - Track dragMoved state to avoid unnecessary DOM recreation - Preserve dblclick detection by deferring renderTimeline() - Quantization applies to sequences and effects uniformly handoff(Claude): timeline editor quantize + drag fixes complete --- tools/timeline_editor/index.html | 62 ++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 18 deletions(-) (limited to 'tools/timeline_editor/index.html') diff --git a/tools/timeline_editor/index.html b/tools/timeline_editor/index.html index 21bedd1..45c9f1f 100644 --- a/tools/timeline_editor/index.html +++ b/tools/timeline_editor/index.html @@ -66,7 +66,7 @@ 100% { box-shadow: 0 0 10px rgba(14, 99, 156, 0.5); border-color: var(--accent-blue); } } - .sequence-header { position: absolute; top: 0; left: 0; right: 0; padding: 8px; z-index: 5; cursor: pointer; user-select: none; } + .sequence-header { position: absolute; top: 0; left: 0; right: 0; padding: 8px; z-index: 5; cursor: move; user-select: none; } .sequence-header-name { font-size: 14px; font-weight: bold; color: #ffffff; } .sequence:not(.collapsed) .sequence-header-name { display: none; } .sequence-name { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 24px; font-weight: bold; color: #ffffff; text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.9), -1px -1px 4px rgba(0, 0, 0, 0.7); pointer-events: none; white-space: nowrap; opacity: 1; transition: opacity 0.3s ease; z-index: 10; } @@ -124,6 +124,17 @@ +