On Mon, 28 Apr 2025 17:47:50 GMT, Martin Fox <m...@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

Reply via email to