Skip to content

Commit 01c0b8c

Browse files
committed
Fix scrollbars being stuck.
1 parent 3f3fbad commit 01c0b8c

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

src/main/java/com/brunomnsilva/smartgraph/containers/ContentZoomScrollPane.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,17 @@ private void zoomContent(double pivotX, double pivotY, ZoomDirection direction)
232232
double newCenterX = centerPosX * scaleFactor;
233233
double newCenterY = centerPosY * scaleFactor;
234234

235-
setHvalue( (newCenterX - zoomCenter.getX()) / (contentSize.getWidth() * scaleFactor - viewPort.getWidth()) );
236-
setVvalue( (newCenterY - zoomCenter.getY()) / (contentSize.getHeight() * scaleFactor - viewPort.getHeight()) );
235+
double h = (newCenterX - zoomCenter.getX()) / (contentSize.getWidth() * scaleFactor - viewPort.getWidth());
236+
double v = (newCenterY - zoomCenter.getY()) / (contentSize.getHeight() * scaleFactor - viewPort.getHeight());
237+
238+
// Check values to avoid scrollbars stuck when the new computed scroll values are NaN or Infinity.
239+
// It seems that only NaN leads to this problem, but let's be safe.
240+
if(Double.isInfinite(h) || Double.isNaN(h) || Double.isInfinite(v) || Double.isNaN(v) ) return;
241+
242+
setHvalue(h);
243+
setVvalue(v);
244+
245+
System.out.printf("H = %4.2f | V = %4.2f \n", h, v);
237246

238247
scaleFactorProperty.set(scaleTotal);
239248
}

0 commit comments

Comments
 (0)