changeset 157:3f54066a0e01

Prevent seeking when panning with mouse. There's still potential for this approach to go wrong, for both zooming and panning. During the duration of the click, if the offset or zoom are returned to the starting position, the mouse will seek to its current x position.
author Lucas Thompson <dev@lucas.im>
date Tue, 21 Mar 2017 17:34:48 +0000
parents 0d6acf5fdd41
children 5aace420d8f9
files src/app/waveform/waveform.component.ts
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/app/waveform/waveform.component.ts	Tue Mar 21 14:34:00 2017 +0000
+++ b/src/app/waveform/waveform.component.ts	Tue Mar 21 17:34:48 2017 +0000
@@ -56,6 +56,7 @@
   private initialZoom: number;
   private initialDistance: number;
   private zoomOnMouseDown: number;
+  private offsetOnMouseDown: number;
 
   constructor(private audioService: AudioPlayerService,
               private piperService: FeatureExtractionService,
@@ -639,10 +640,15 @@
 
   seekStart(): void {
     this.zoomOnMouseDown = this.timeline.timeContext.zoom;
+    this.offsetOnMouseDown = this.timeline.timeContext.offset;
   }
 
   seekEnd(x: number): void {
-    if (this.zoomOnMouseDown === this.timeline.timeContext.zoom) {
+    const hasSameZoom: boolean = this.zoomOnMouseDown ===
+      this.timeline.timeContext.zoom;
+    const hasSameOffset: boolean = this.offsetOnMouseDown ===
+      this.timeline.timeContext.offset;
+    if (hasSameZoom && hasSameOffset) {
       this.seek(x);
     }
   }