Verschachtele Platform.runLater in resetToFitView für zuverlässige Zentrierung

Ein einzelner Platform.runLater-Aufruf kann feuern, bevor JavaFX das Layout
nach setFitToWidth(true) vollständig abgeschlossen hat. Durch Verschachtelung
eines zweiten runLater werden setHvalue(0.5) und setVvalue(0.5) erst nach dem
nächsten vollständigen Layout-Pass gesetzt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-05 14:39:32 +02:00
parent 15ff034a2b
commit b4f2bf60c6
@@ -727,12 +727,15 @@ public final class PdfPreviewPane {
imageView.fitHeightProperty().bind(viewStack.heightProperty());
scrollPane.setFitToWidth(true);
scrollPane.setFitToHeight(true);
// Zentrierung sicherstellen: nach layout() H/V auf Mitte setzen,
// damit verbleibende Scroll-Werte aus dem Zoom-/Pan-Modus nicht nachwirken
// Zentrierung sicherstellen: layout() im ersten runLater abschließen,
// H/V im zweiten runLater setzen garantiert, dass das Layout vollständig
// abgeschlossen ist, bevor die Scroll-Werte gesetzt werden
Platform.runLater(() -> {
scrollPane.layout();
scrollPane.setHvalue(0.5);
scrollPane.setVvalue(0.5);
Platform.runLater(() -> {
scrollPane.setHvalue(0.5);
scrollPane.setVvalue(0.5);
});
});
}
}