On Fri, 31 Jul 2026 20:37:59 GMT, Andy Goryachev <[email protected]> wrote:

>> `PopupWindow` will always overwrite its `Scene` (user agent) stylesheets 
>> when an owner was set and `show` is called.
>> Code like this:
>> 
>> 
>>         final Popup popup = new Popup();
>>         popup.getScene().setUserAgentStylesheet(popupUserAgentStylesheet);
>>         popup.getScene().getStylesheets().add(popupStylesheet);
>> 
>> 
>> will do nothing, because your added stylesheets will be later overwritten 
>> when `show` is called. 
>> Andy and I were already wondering about this behavior two years ago: 
>> https://github.com/openjdk/jfx/pull/1394#discussion_r1617620949
>> 
>> ---
>> 
>> I can't see any reason why we should do that. Instead, this PR will only add 
>> the stylesheets of the owner if they do not exist already. 
>> Additionally, we will not overwrite the user agent stylesheet if it was 
>> already set.
>> 
>> Added tests for all combinations I can think of. This PR also fixes NPEs 
>> that can happen when the owner window has no 'root window'.
>> 
>> There is already a test for the `Cursor` behavior, but there was none that 
>> verifies that the `Cursor` is not overwritten, so added one as well.
>> 
>> https://github.com/openjdk/jfx/blob/05a7b6d0db5e799395da27ab43a93d4337001e11/modules/javafx.graphics/src/main/java/javafx/stage/PopupWindow.java#L479-L481
>> 
>> Now, we will never overwrite anything that the developer set (before 
>> `show`ing). And as we can see above, this was already done this way with the 
>> `Cursor`.
>> 
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> modules/javafx.graphics/src/main/java/javafx/stage/PopupWindow.java line 506:
> 
>> 504:         // JDK-8116444
>> 505:         Window rootWindow = getRootWindow(owner);
>> 506:         if (rootWindow == null) {
> 
> same thing - is it even possible for the `rootWindow` to be `null`?

Yes, as you can see in the tests I wrote.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/2236#discussion_r3693382332

Reply via email to