From dd9b0bbfbc24ba413b4594f08840fb3582e40b09 Mon Sep 17 00:00:00 2001 From: Denis Konoplev Date: Fri, 31 Jan 2020 09:45:40 +0300 Subject: [PATCH] IDEA-231689: Fix touch scroll on tap GitOrigin-RevId: 06bd63245f6f3414ef8e44834e965e10d8ffcd59 --- .../src/com/intellij/ui/components/JBScrollPane.java | 2 +- .../src/com/intellij/util/ui/MouseWheelSmoothScroll.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java b/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java index b97da86534e5..a745f91250c1 100644 --- a/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java +++ b/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java @@ -201,7 +201,7 @@ public class JBScrollPane extends JScrollPane { boolean isAdjustedDeltaZero = bar instanceof JBScrollBar && ((JBScrollBar)bar).getDeltaAdjusted(event) == 0.0; if (isWheelScrollEnabled && isBarVisible && !isAdjustedDeltaZero) { - if (UISettings.getShadowInstance().getAnimatedScrolling()) { + if (UISettings.getShadowInstance().getAnimatedScrolling() || TouchScrollUtil.isTouchScroll(event)) { if (mySmoothScroll == null) { mySmoothScroll = MouseWheelSmoothScroll.create(() -> { return ScrollSettings.isEligibleFor(pane); diff --git a/platform/platform-api/src/com/intellij/util/ui/MouseWheelSmoothScroll.java b/platform/platform-api/src/com/intellij/util/ui/MouseWheelSmoothScroll.java index 9973d2a8bc18..5c7339534ba1 100644 --- a/platform/platform-api/src/com/intellij/util/ui/MouseWheelSmoothScroll.java +++ b/platform/platform-api/src/com/intellij/util/ui/MouseWheelSmoothScroll.java @@ -154,6 +154,9 @@ public class MouseWheelSmoothScroll { } private static int getRoundedAtLeastToOne(double value) { + if (value == 0.0) { + return 0; + } if (abs(value) < 1) { return value > 0 ? 1 : -1; } @@ -248,6 +251,7 @@ public class MouseWheelSmoothScroll { public void registerBegin() { beginTime = System.currentTimeMillis(); + lastDelta = 0; } public void registerUpdate(int delta) {