661894f1ec
ChangeListener auf hvalueProperty feuert nicht zuverlässig: wenn hvalue im Fit-Modus bereits 0.5 (oder identisch zum Reset-Wert) ist, gibt es keine Wertänderung beim setFitToWidth(false), und der Listener läuft nie an – der spätere JavaFX-eigene Reset auf 0.0 bleibt unkontrolliert. AnimationTimer.handle() läuft einmal pro JavaFX-Frame, nach allen Layout-, CSS- und Pulse-Passes des aktuellen Frames. Das ist der einzige in JavaFX zuverlässige Mechanismus, um nach allem zu feuern, was JavaFX in diesem Frame noch erledigt. stop() im ersten handle() macht den Timer zum Single-Shot. Folge-Zoom-Schritte (wasInFitMode == false) bleiben unverändert mit einfachem Platform.runLater. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>