modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java

Print this page

        

@@ -23,10 +23,14 @@
  * questions.
  */
 
 package com.sun.javafx.scene.control.skin;
 
+import com.sun.javafx.Utils;
+import com.sun.javafx.scene.control.behavior.ScrollPaneBehavior;
+import com.sun.javafx.scene.traversal.TraversalEngine;
+import com.sun.javafx.scene.traversal.TraverseListener;
 import javafx.animation.Animation.Status;
 import javafx.animation.KeyFrame;
 import javafx.animation.KeyValue;
 import javafx.animation.Timeline;
 import javafx.beans.InvalidationListener;

@@ -40,31 +44,26 @@
 import javafx.event.EventDispatchChain;
 import javafx.event.EventDispatcher;
 import javafx.event.EventHandler;
 import javafx.geometry.BoundingBox;
 import javafx.geometry.Bounds;
+import javafx.geometry.Insets;
 import javafx.geometry.Orientation;
 import javafx.scene.Cursor;
 import javafx.scene.Node;
 import javafx.scene.control.ScrollBar;
 import javafx.scene.control.ScrollPane;
 import javafx.scene.control.ScrollPane.ScrollBarPolicy;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.input.ScrollEvent;
 import javafx.scene.input.TouchEvent;
-import javafx.scene.layout.Region;
 import javafx.scene.layout.StackPane;
 import javafx.scene.shape.Rectangle;
 import javafx.util.Duration;
-import com.sun.javafx.Utils;
-import com.sun.javafx.application.PlatformImpl;
-import com.sun.javafx.scene.control.behavior.ScrollPaneBehavior;
-import com.sun.javafx.scene.traversal.TraversalEngine;
-import com.sun.javafx.scene.traversal.TraverseListener;
-import static com.sun.javafx.Utils.*;
-import static com.sun.javafx.scene.control.skin.Utils.*;
-import javafx.geometry.Insets;
+
+import static com.sun.javafx.Utils.clamp;
+import static com.sun.javafx.scene.control.skin.Utils.boundedSize;
 
 public class ScrollPaneSkin extends BehaviorSkinBase<ScrollPane, ScrollPaneBehavior> implements TraverseListener {
     /***************************************************************************
      *                                                                         *
      * UI Subcomponents                                                        *

@@ -1077,11 +1076,11 @@
     }
 
     private double updatePosY() {
         final ScrollPane sp = getSkinnable();
         double minY = Math.min((- posY / (vsb.getMax() - vsb.getMin()) * (nodeHeight - contentHeight)), 0);
-        viewContent.setLayoutY(minY);
+        viewContent.setLayoutY(snapPosition(minY));
         if (!sp.vvalueProperty().isBound()) sp.setVvalue(Utils.clamp(sp.getVmin(), posY, sp.getVmax()));
         return posY;
     }
 
     private void resetClip() {