RFR: 8354943: [Linux] Simplify and update glass gtk backend: window sizing, positioning, and state management issues [v50]
Thiago Milczarek Sayao
tsayao at openjdk.org
Sat Aug 9 18:33:23 UTC 2025
On Wed, 30 Jul 2025 22:22:02 GMT, Martin Fox <mfox at openjdk.org> wrote:
>> Thiago Milczarek Sayao has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 60 commits:
>>
>> - Simplify notify_fullscreen
>> - Merge branch 'master' into 8354943
>> - Remove repaint call (8351867 is fixed)
>> - Merge branch 'master' into 8354943
>> - Remove unused const
>> - Remove wrong call to enter_fullscreen
>> - Review changes
>> - Use process_expose
>> - Min / Max size improvements
>> - Invalidate view size on new view
>> - ... and 50 more: https://git.openjdk.org/jfx/compare/bc433da8...d1842395
>
> tests/system/src/test/java/test/javafx/stage/SizingTest.java line 155:
>
>> 153: @ParameterizedTest(name = PARAMETERIZED_TEST_DISPLAY)
>> 154: @EnumSource(names = {"DECORATED", "UNDECORATED", "EXTENDED", "TRANSPARENT", "UTILITY"})
>> 155: void minSize(StageStyle stageStyle) {
>
> The minSize test is failing on Windows for all stage styles. This is a legitimate bug; the platform is not correctly reporting back to the system that the size change failed. I will enter a bug and you can disable this test until the bug is fixed. (macOS is also failing the minSize and maxSize tests).
I've put an `assumeTrue(PlatformUtil.isWindows());` referencing JDK-8364547. Is it the correct bug?
> tests/system/src/test/java/test/robot/javafx/stage/StageOwnershipTest.java line 204:
>
>> 202: @ParameterizedTest(name = PARAMETERIZED_TEST_DISPLAY)
>> 203: @MethodSource("getTestsParams")
>> 204: void openingModalChildStageWhileFullScreenShouldHaveFocus(StageStyle stageStyle, Modality modality)
>
> This test is passing on macOS but it's causing beeps. When the test is being torn down it's trying to hide the fullscreen window first even though it owns a visible modal window. After the window exits fullscreen the OS always tries to make it the key window (!?) even though JavaFX considers it disabled and this is causing Glass to beep and issue the FOCUS_DISABLED message.
>
> There's nothing wrong with this test but it is inadvertently testing how the system deals with hiding a window while it owns a modal. But my main concern is that other macOS developers are going to be repeatedly tracking down where the beeps are coming from.
Added a text description on the full screen exit hint. Will also show up if searching for "beep".
> tests/system/src/test/java/test/robot/javafx/stage/StageOwnershipTest.java line 267:
>
>> 265: @ParameterizedTest(name = PARAMETERIZED_TEST_DISPLAY)
>> 266: @EnumSource(names = {"DECORATED", "UNDECORATED", "EXTENDED"})
>> 267: void iconifyParentShouldHideChildren(StageStyle style) {
>
> These tests are failing on Windows for DECORATED and EXTENDED stages. You've got two levels of owned windows and the second level windows aren't getting minimized. This is due to an OS bug, it doesn't recurse through multiple ownership levels.
>
> I suppose we could enter a bug on this but I doubt it would ever get fixed. It might make more sense to reduce the test to a single level of ownership.
Did an `assumeTrue(PlatformUtil.isWindows());` if style is `EXTENDED` or `UNDECORATED`
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1789#discussion_r2264912292
PR Review Comment: https://git.openjdk.org/jfx/pull/1789#discussion_r2264909365
PR Review Comment: https://git.openjdk.org/jfx/pull/1789#discussion_r2264911706
More information about the openjfx-dev
mailing list