On Fri, 27 Jan 2023 13:30:59 GMT, John Hendrikx <[email protected]> wrote:

>> Florian Kirmaier has updated the pull request with a new target base due to 
>> a merge or a rebase. The pull request now contains eight commits:
>> 
>>  - JDK-8269907
>>    Added missing changes after merge
>>  - Merge remote-tracking branch 'origjfx/master' into 
>> JDK-8269907-dirty-and-removed
>>    
>>    # Conflicts:
>>    # modules/javafx.graphics/src/main/java/com/sun/javafx/tk/Toolkit.java
>>    # modules/javafx.graphics/src/main/java/javafx/scene/Scene.java
>>  - Merge remote-tracking branch 'origin/master'
>>  - JDK-8269907
>>    Removed the sync methods for the scene, because they don't work when peer 
>> is null, and they are not necessary.
>>  - JDK-8269907
>>    Fixed rare bug, causing bounds to be out of sync.
>>  - JDK-8269907
>>    We now require the rendering lock when cleaning up dirty nodes. To do so, 
>> we moved some code required for snapshot into a reusable method.
>>  - JDK-8269907
>>    The bug is now fixed in a new way. Toolkit now supports registering 
>> CleanupListeners, which can clean up the dirty nodes, avoiding memoryleaks.
>>  - JDK-8269907
>>    Fixing dirty nodes and parent removed, when a window is no longer 
>> showing.  This typically happens with context menus.
>
> modules/javafx.graphics/src/main/java/javafx/scene/Scene.java line 746:
> 
>> 744:         if(!cleanupAdded) {
>> 745:             if((window.get() == null || !window.get().isShowing()) && 
>> dirtyNodesSize > 0) {
>> 746:                 
>> Toolkit.getToolkit().addCleanupListener(cleanupListener);
> 
> This adds a listener to be run on the next pulse, yet no pulse is being 
> requested. Probably something else will request a pulse, but seems like you 
> may not want to rely on that.  Specifically, `addToDirtyList` won't request a 
> pulse if the stage is already closed (peer is `null`), and only then do you 
> remove some nodes.  It still works though in that case, probably because 
> something else in JavaFX is requesting a pulse (nothing in `Scene` does 
> though when peer is `null`).

I assume that these methods are just called all the time - independent of 
whether there is an open window.
I would like to leave it like this - unless there is an issue and an idea on 
how to do it differently.

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

PR: https://git.openjdk.org/jfx/pull/584

Reply via email to