diff options
Diffstat (limited to 'tools/timeline_editor/timeline-viewport.js')
| -rw-r--r-- | tools/timeline_editor/timeline-viewport.js | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/tools/timeline_editor/timeline-viewport.js b/tools/timeline_editor/timeline-viewport.js index 196368e..dcedb45 100644 --- a/tools/timeline_editor/timeline-viewport.js +++ b/tools/timeline_editor/timeline-viewport.js @@ -22,17 +22,15 @@ export class ViewportController { // Scroll sync this.dom.timelineContent.addEventListener('scroll', () => this.handleScroll()); - // Wheel handling + // Wheel handling - capture at container level to override all child elements const wheelHandler = e => this.handleWheel(e); - this.dom.timelineContent.addEventListener('wheel', wheelHandler, { passive: false }); - this.dom.waveformContainer.addEventListener('wheel', wheelHandler, { passive: false }); + this.dom.timelineContainer.addEventListener('wheel', wheelHandler, { passive: false, capture: true }); - // Prevent wheel bubbling from UI containers + // Prevent wheel bubbling from UI containers outside timeline document.querySelector('header').addEventListener('wheel', e => e.stopPropagation()); this.dom.propertiesPanel.addEventListener('wheel', e => e.stopPropagation()); document.querySelector('.zoom-controls').addEventListener('wheel', e => e.stopPropagation()); document.querySelector('.stats').addEventListener('wheel', e => e.stopPropagation()); - document.getElementById('timeMarkers').addEventListener('wheel', e => e.stopPropagation()); // Waveform hover tracking this.dom.waveformContainer.addEventListener('mouseenter', () => this.showWaveformCursor()); @@ -148,7 +146,7 @@ export class ViewportController { const rect = this.dom.waveformContainer.getBoundingClientRect(); const mouseX = e.clientX - rect.left; const scrollLeft = this.dom.timelineContent.scrollLeft; - const timeBeats = (scrollLeft + mouseX - this.TIMELINE_LEFT_PADDING) / this.state.pixelsPerBeat; + const timeBeats = (scrollLeft + mouseX) / this.state.pixelsPerBeat; const timeSeconds = timeBeats * this.state.secondsPerBeat; // Position cursor |
