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