RFR: 8176813: Mac: Failure to exit full-screen programmatically in some cases
Andy Goryachev
angorya at openjdk.org
Mon Apr 28 20:56:49 UTC 2025
On Mon, 28 Apr 2025 17:47:50 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.
the proposed solution makes sense.
question: could this deferral of runnables cause some kind of race condition in respect to other synchronous changes? Like, for example, trying to hide the window while is being transitioned to or from full screen?
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1797#issuecomment-2836578258
More information about the openjfx-dev
mailing list