Skip to content

Commit 3a80091

Browse files
committed
fix(timeline): improve mac wheel scrolling
1 parent 752eda2 commit 3a80091

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

packages/app-frontend/src/features/timeline/TimelineView.vue

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
watchEffect,
1212
defineComponent,
1313
} from '@vue/composition-api'
14-
import { SharedData } from '@vue-devtools/shared-utils'
14+
import { SharedData, isMac } from '@vue-devtools/shared-utils'
1515
import {
1616
useLayers,
1717
useTime,
@@ -1185,17 +1185,21 @@ export default defineComponent({
11851185
watch(startTime, () => queueCameraUpdate())
11861186
watch(endTime, () => queueCameraUpdate())
11871187
1188+
let isShifPressed: boolean
1189+
11881190
onMounted(() => {
11891191
queueCameraUpdate()
11901192
// @ts-ignore
11911193
app.stage.addEventListener('wheel', onMouseWheel)
11921194
})
11931195
11941196
function onMouseWheel (event: FederatedWheelEvent) {
1197+
event.preventDefault()
1198+
11951199
const size = endTime.value - startTime.value
11961200
const viewWidth = getAppWidth()
11971201
1198-
if (!event.ctrlKey && !event.altKey) {
1202+
if (!event.ctrlKey && !event.altKey && !event.nativeEvent.shiftKey) {
11991203
const centerRatio = event.globalX / viewWidth
12001204
const center = size * centerRatio + startTime.value
12011205
@@ -1217,10 +1221,13 @@ export default defineComponent({
12171221
} else {
12181222
let deltaX = event.deltaX
12191223
1220-
if (deltaX === 0 && event.shiftKey && event.deltaY !== 0) {
1224+
if (deltaX === 0 && event.nativeEvent.shiftKey && event.deltaY !== 0) {
12211225
// Horitonzal scroll with vertical mouse wheel and shift key
12221226
deltaX = event.deltaY
12231227
}
1228+
if (event.altKey) {
1229+
deltaX = 0
1230+
}
12241231
12251232
if (deltaX !== 0) {
12261233
// Horizontal scroll
@@ -1237,7 +1244,7 @@ export default defineComponent({
12371244
// Vertical scroll
12381245
const layersScroller = document.querySelector('[data-scroller="layers"]')
12391246
if (layersScroller) {
1240-
const speed = SharedData.menuStepScrolling ? 1 : LAYER_SIZE * 4
1247+
const speed = isMac ? Math.abs(event.deltaY) : LAYER_SIZE * 4
12411248
if (event.deltaY < 0) {
12421249
layersScroller.scrollTop -= speed
12431250
} else {

0 commit comments

Comments
 (0)