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:
+5
-2
@@ -727,13 +727,16 @@ public final class PdfPreviewPane {
|
|||||||
imageView.fitHeightProperty().bind(viewStack.heightProperty());
|
imageView.fitHeightProperty().bind(viewStack.heightProperty());
|
||||||
scrollPane.setFitToWidth(true);
|
scrollPane.setFitToWidth(true);
|
||||||
scrollPane.setFitToHeight(true);
|
scrollPane.setFitToHeight(true);
|
||||||
// Zentrierung sicherstellen: nach layout() H/V auf Mitte setzen,
|
// Zentrierung sicherstellen: layout() im ersten runLater abschließen,
|
||||||
// damit verbleibende Scroll-Werte aus dem Zoom-/Pan-Modus nicht nachwirken
|
// H/V im zweiten runLater setzen – garantiert, dass das Layout vollständig
|
||||||
|
// abgeschlossen ist, bevor die Scroll-Werte gesetzt werden
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
scrollPane.layout();
|
scrollPane.layout();
|
||||||
|
Platform.runLater(() -> {
|
||||||
scrollPane.setHvalue(0.5);
|
scrollPane.setHvalue(0.5);
|
||||||
scrollPane.setVvalue(0.5);
|
scrollPane.setVvalue(0.5);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user