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) {