On Tue, 24 Mar 2026 17:28:12 GMT, Marius Hanl <[email protected]> wrote:

>> Very similar to https://github.com/openjdk/jfx/pull/1829, this PR removes 
>> the questionable behavior that the `MouseEventFirer` may create a temporary 
>> `Stage` for your `Node`.
>> 
>> Take the following test code:
>> 
>> Button button = new Button("Button");
>> MouseEventFirer mouse = new MouseEventFirer(button);
>> mouse.fireMousePressAndRelease();
>> mouse.fireMousePressAndRelease();
>> mouse.dispose()
>> 
>> What it does is to create a `Stage` in the first method. The second method 
>> does not. This is not immediately clear.
>> That is also the reason why the dispose method exists. To MAY clean it up. 
>> Or forget to call it.
>> 
>> This does not test a realistic scenario and the chance is quite high that 
>> developers used that methods without even knowing that it contains such 
>> logic.
>> 
>> So the idea is to remove the StageLoader code from MouseEventFirer and 
>> rather use it in the Test code before calling the Util methods.
>> 
>> For the example above, this would result in:
>> 
>> Button button = new Button("Button");
>> stageLoader = new StageLoader(button );
>> MouseEventFirer mouse = new MouseEventFirer(button);
>> mouse.fireMousePressAndRelease();
>> mouse.fireMousePressAndRelease();
>> 
>> 
>> There were only two real tests that did not have a `Stage` yet. So most of 
>> the tests already had a good setup and this could never run.
>
> Marius Hanl has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   newline

Marked as reviewed by angorya (Reviewer).

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

PR Review: https://git.openjdk.org/jfx/pull/2124#pullrequestreview-4000980282

Reply via email to