> This is a continuation to > [JDK-8236651](https://bugs.openjdk.org/browse/JDK-8236651) and it aims to > stabilize the linux glass gtk backend. > > It refactors the Glass GTK implementation with a primary focus on window > sizing, positioning, and state management, addressing a number of > long-standing issues. > > Previously, three separate context classes existed, two of which were used > for Java Web Start and Applets. These have been unified, as they are no > longer required. > > Additional tests have been introduced to improve coverage. Some tests > produced different results depending on the StageStyle, so they have been > converted to use `@ParameterizedTest` to exercise multiple styles. > > Although the primary focus is XWayland, the changes have also been verified > to work correctly on Xorg. > > This replaces #1789. It removes the use of GdkWindow in favor of GtkWindow, > reducing risk and simplifying the review process while preserving the same > set of bug fixes. Additionally, #2025 requires a `GtkWindow` to be used when > setting the parent of the file chooser dialog. > > java -Djavafx.enablePreview=true -Djdk.gtk.verbose=true > -Dglass.gtk.logCategories=size,lifecycle -Dprism.order=sw @build/run.args > tests/manual/stage/TestStage.java > > To show debug messages, build with `-PCONF=DebugNative` and run with > `-Djdk.gtk.verbose=true`. Log categories can be passed with > `-Dglass.gtk.logCategories=CATEGORY` > > `CATEGORY` can be one or more of: > - all > - size > - position > - focus > - state > - lifecycle > - input > - dialog > > Multiple categories can be specified by separating them with commas (e.g. > size,focus,input). > > A manual test is provided: > `java @build/run.args tests/manual/stage/TestStage.java` > > When a window property is set, it is reported immediately. However, once it > reaches the native Glass layer, it may be adjusted or rejected, causing the > property to be updated again. Introducing a delay helps ensure the final > state has been applied before it is verified. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
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 39 commits: - Remove configurable delays - Fix test - Xorg fixes - Revert "Rewrite WrongStageFocusWithApplicationModalityTest because it fails intermittently" This reverts commit c6b9dd745e5d762adb89a3b596e53b0d8a790d7f. - Rewrite WrongStageFocusWithApplicationModalityTest because it fails intermittently - Use existing verbose flag for GTK - Fix window size update - StageOwnershipTest: Update Y_DELTA - Copyright year - Merge branch 'master' into 8354943_v2 - ... and 29 more: https://git.openjdk.org/jfx/compare/b690b3c4...68d684f9 ------------- Changes: https://git.openjdk.org/jfx/pull/2139/files Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2139&range=16 Stats: 5094 lines in 29 files changed: 3711 ins; 769 del; 614 mod Patch: https://git.openjdk.org/jfx/pull/2139.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/2139/head:pull/2139 PR: https://git.openjdk.org/jfx/pull/2139
