From 1bc5ba612c764ae4edde3227a0529bf68c7578a2 Mon Sep 17 00:00:00 2001 From: Oren Kedem Date: Wed, 16 Jun 2021 11:25:56 +0300 Subject: [PATCH] Fix mouse wheel performance on MAC, when using non-infinite scroll mouse devices --- .../Foundations/UI/Spaces/Charting-Space/Scales/RateScale.js | 2 +- .../UI/Spaces/Charting-Space/Scales/TimeFrameScale.js | 2 +- .../Foundations/UI/Spaces/Charting-Space/Scales/TimeScale.js | 2 +- Projects/Foundations/UI/Spaces/Charting-Space/Viewport.js | 2 +- Projects/Foundations/UI/Spaces/Floating-Space/Picker.js | 2 +- Projects/Foundations/UI/Spaces/Panel-Space/LayersPanel.js | 2 +- Projects/Foundations/UI/Spaces/Side-Space/ListView.js | 2 +- UI/Globals.js | 1 + 8 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Projects/Foundations/UI/Spaces/Charting-Space/Scales/RateScale.js b/Projects/Foundations/UI/Spaces/Charting-Space/Scales/RateScale.js index 82506f523..8b4e24e67 100644 --- a/Projects/Foundations/UI/Spaces/Charting-Space/Scales/RateScale.js +++ b/Projects/Foundations/UI/Spaces/Charting-Space/Scales/RateScale.js @@ -175,7 +175,7 @@ function newRateScale() { } function onMouseWheel(event, autoScale) { - if (IS_MAC) { + if (IS_MAC && Math.abs(event.wheelDelta) < MAC_MOUSE_WHEEL_INFINITE_SCROLL_THRESHOLD) { let sensitivity if (event.delta < 0) { if (event.shiftKey === true) { diff --git a/Projects/Foundations/UI/Spaces/Charting-Space/Scales/TimeFrameScale.js b/Projects/Foundations/UI/Spaces/Charting-Space/Scales/TimeFrameScale.js index cd21865b7..6c02305e0 100644 --- a/Projects/Foundations/UI/Spaces/Charting-Space/Scales/TimeFrameScale.js +++ b/Projects/Foundations/UI/Spaces/Charting-Space/Scales/TimeFrameScale.js @@ -251,7 +251,7 @@ function newTimeFrameScale() { } function onMouseWheel(event) { - if (IS_MAC) { + if (IS_MAC && Math.abs(event.wheelDelta) < MAC_MOUSE_WHEEL_INFINITE_SCROLL_THRESHOLD) { let sensitivity if (event.delta < 0) { if (event.shiftKey === true) { diff --git a/Projects/Foundations/UI/Spaces/Charting-Space/Scales/TimeScale.js b/Projects/Foundations/UI/Spaces/Charting-Space/Scales/TimeScale.js index 790e54a0e..cb13e8b21 100644 --- a/Projects/Foundations/UI/Spaces/Charting-Space/Scales/TimeScale.js +++ b/Projects/Foundations/UI/Spaces/Charting-Space/Scales/TimeScale.js @@ -126,7 +126,7 @@ function newTimeScale() { } function onMouseWheel(event, autoScale) { - if (IS_MAC) { + if (IS_MAC && Math.abs(event.wheelDelta) < MAC_MOUSE_WHEEL_INFINITE_SCROLL_THRESHOLD) { let sensitivity if (event.delta < 0) { if (event.shiftKey === true) { diff --git a/Projects/Foundations/UI/Spaces/Charting-Space/Viewport.js b/Projects/Foundations/UI/Spaces/Charting-Space/Viewport.js index 9942ab03b..dda7207f8 100644 --- a/Projects/Foundations/UI/Spaces/Charting-Space/Viewport.js +++ b/Projects/Foundations/UI/Spaces/Charting-Space/Viewport.js @@ -206,7 +206,7 @@ function newViewport() { if ((event.ctrlKey === true || event.metaKey === true)) { return } let morePower = 1 - if (IS_MAC) { + if (IS_MAC && Math.abs(event.wheelDelta) < MAC_MOUSE_WHEEL_INFINITE_SCROLL_THRESHOLD) { let sensitivity if (event.delta < 0) { if (event.shiftKey === true) { diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/Picker.js b/Projects/Foundations/UI/Spaces/Floating-Space/Picker.js index cf8649970..38808f107 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/Picker.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/Picker.js @@ -138,7 +138,7 @@ function newPicker() { function onMouseWheel() { - if (IS_MAC) { + if (IS_MAC && Math.abs(event.wheelDelta) < MAC_MOUSE_WHEEL_INFINITE_SCROLL_THRESHOLD) { let sensitivity if (event.delta < 0) { if (event.shiftKey === true) { diff --git a/Projects/Foundations/UI/Spaces/Panel-Space/LayersPanel.js b/Projects/Foundations/UI/Spaces/Panel-Space/LayersPanel.js index 1eb9b2b7f..f7500182d 100644 --- a/Projects/Foundations/UI/Spaces/Panel-Space/LayersPanel.js +++ b/Projects/Foundations/UI/Spaces/Panel-Space/LayersPanel.js @@ -212,7 +212,7 @@ function newLayersPanel() { function onMouseWheel(event) { - if (IS_MAC) { + if (IS_MAC && Math.abs(event.wheelDelta) < MAC_MOUSE_WHEEL_INFINITE_SCROLL_THRESHOLD) { let sensitivity if (event.delta < 0) { if (event.shiftKey === true) { diff --git a/Projects/Foundations/UI/Spaces/Side-Space/ListView.js b/Projects/Foundations/UI/Spaces/Side-Space/ListView.js index 4d13453aa..c1dde08b5 100644 --- a/Projects/Foundations/UI/Spaces/Side-Space/ListView.js +++ b/Projects/Foundations/UI/Spaces/Side-Space/ListView.js @@ -124,7 +124,7 @@ function newListView() { function onMouseWheel(event) { - if (IS_MAC) { + if (IS_MAC && Math.abs(event.wheelDelta) < MAC_MOUSE_WHEEL_INFINITE_SCROLL_THRESHOLD) { let sensitivity if (event.delta < 0) { if (event.shiftKey === true) { diff --git a/UI/Globals.js b/UI/Globals.js index 53f2b0e8f..b3588616d 100644 --- a/UI/Globals.js +++ b/UI/Globals.js @@ -69,6 +69,7 @@ const MAC_AMOUNT_FACTOR = 5 const IS_MAC = navigator.platform.toUpperCase().indexOf('MAC') >= 0 const MAC_ZOOM_SENSITIVITY = 5 const MAC_SCROLL_SENSITIVITY = 20 +const MAC_MOUSE_WHEEL_INFINITE_SCROLL_THRESHOLD= 120 const DEBUG = {}