RFR: 8176813: Mac: Failure to exit full-screen programmatically in some cases [v2]

Andy Goryachev angorya at openjdk.org
Tue Apr 29 20:54:51 UTC 2025


On Tue, 29 Apr 2025 17:29:26 GMT, Martin Fox <mfox at openjdk.org> wrote:

>> On macOS the system animates the transition into and out of fullscreen and this animation runs asynchronously. JavaFX tries to make the setFullScreen call appear synchronous by running a nested event loop while the transition is going on. But this means that runLater runnables can fire during a call to setFullScreen.
>> 
>> This can also occur during a call to Window.hide() if the window is in fullscreen mode. During the setView call glass tries to take the window out of fullscreen mode which fires up a nested event loop and, again, runLater runnables (like pulses) start firing.
>> 
>> In this PR GlassRunnables that try to run during the fullscreen transition are instead placed in a deferral list. When the fullscreen event loop exits they are re-scheduled.
>
> Martin Fox has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fixed typo, re-enabled maximized position test on macOS.

my testing looks good.

I'd suggest to double the timeout in `RestoreStagePositionTest::testUnfullscreenPosition()` (line 95) to 800ms since I was getting exceptions during testing.

-------------

Changes requested by angorya (Reviewer).

PR Review: https://git.openjdk.org/jfx/pull/1797#pullrequestreview-2805060147


More information about the openjfx-dev mailing list