aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTerry Truong <terry06890@gmail.com>2023-01-28 16:35:01 +1100
committerTerry Truong <terry06890@gmail.com>2023-01-28 16:38:20 +1100
commit0647021d9b520e058923d2ed44fc487c513def5c (patch)
tree94119852b3881e6d2975174f0e242f48d5c047a9
parent8687a7fafc1f200dad6eee9b5b7f3c7cdb2572a0 (diff)
Adjust mouse wheel handling
Account for horizontal mouse wheels Use Ctrl for zooming, and Shift for panning
-rw-r--r--src/components/IntroModal.vue8
-rw-r--r--src/components/TimeLine.vue15
2 files changed, 16 insertions, 7 deletions
diff --git a/src/components/IntroModal.vue b/src/components/IntroModal.vue
index b8c0319..8d778f6 100644
--- a/src/components/IntroModal.vue
+++ b/src/components/IntroModal.vue
@@ -18,12 +18,14 @@
<span class="font-bold">Drag the screen</span> to move
</li>
<li v-else>
- <span class="font-bold">Scroll</span> or
- <span class="font-bold">press {{vert ? 'up &amp; down': 'left &amp; right'}}</span>
+ <span class="font-bold">Scroll</span> or press
+ <span class="font-bold">{{vert ? 'Up &amp; Down': 'Left &amp; Right'}}</span>
to move
</li>
<li>
- <span class="font-bold">{{touchDevice ? 'Pinch' : 'Hold shift'}}</span> to zoom in &amp; out
+ <span v-if="touchDevice">Pinch</span>
+ <span v-else>Hold <span class="font-bold">Ctrl</span></span>
+ to zoom in &amp; out
</li>
</ul>
</div>
diff --git a/src/components/TimeLine.vue b/src/components/TimeLine.vue
index 0cdd106..d0adfc0 100644
--- a/src/components/TimeLine.vue
+++ b/src/components/TimeLine.vue
@@ -2,7 +2,7 @@
<div class="relative overflow-hidden z-0" ref="rootRef"
@pointerdown="onPointerDown" @pointermove="onPointerMove" @pointerup="onPointerUp"
@pointercancel="onPointerUp" @pointerout="onPointerUp" @pointerleave="onPointerUp"
- @wheel.exact="onWheel" @wheel.shift.exact="onShiftWheel"
+ @wheel.exact="onWheel" @wheel.shift.exact="onWheel" @wheel.ctrl.exact.prevent="onCtrlWheel"
:style="{backgroundColor: !current && closeable ? 'rgba(0,0,0,0.3)' : store.color.bg}">
<!-- Event density indicators -->
@@ -1303,11 +1303,18 @@ function onPointerUp(evt: PointerEvent){
}
function onWheel(evt: WheelEvent){
- let shiftDir = (evt.deltaY > 0 ? 1 : -1) * (!vert.value ? -1 : 1);
- panTimeline(shiftDir * store.scrollRatio);
+ if (Math.abs(evt.deltaY) > Math.abs(evt.deltaX)){ // Vertical wheel scroll
+ const shiftDir = (evt.deltaY > 0 ? 1 : -1) * (vert.value ? -1 : 1);
+ panTimeline(shiftDir * store.scrollRatio);
+ } else { // Horizontal wheel scroll
+ if (!vert.value){
+ const shiftDir = evt.deltaX > 0 ? 1 : -1;
+ panTimeline(shiftDir * store.scrollRatio);
+ }
+ }
}
-function onShiftWheel(evt: WheelEvent){
+function onCtrlWheel(evt: WheelEvent){
let zoomRatio = evt.deltaY > 0 ? store.zoomRatio : 1/store.zoomRatio;
zoomTimeline(zoomRatio, [pointerX, pointerY]);
}