summaryrefslogtreecommitdiff
path: root/tools/timeline_editor/timeline-viewport.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/timeline_editor/timeline-viewport.js')
-rw-r--r--tools/timeline_editor/timeline-viewport.js10
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