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.

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

Commit messages:
 - MouseEventFirer should not create a temporary stage

Changes: https://git.openjdk.org/jfx/pull/2124/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2124&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8380574
  Stats: 126 lines in 13 files changed: 17 ins; 94 del; 15 mod
  Patch: https://git.openjdk.org/jfx/pull/2124.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2124/head:pull/2124

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

Reply via email to