> 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. > > 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 47 commits: - Merge branch 'master' into 8354943_v2 - Fix WM Functions for non-decorated windows - Review adjustments - Address review feedback: - Fix programmatically resizing unresizable windows - Fix removing minimize on disabling the window (only works on older window managers) - Merge branch 'master' into 8354943_v2 - mapped = true for popups - Do not block sent configure events, as doing so breaks screen-change detection. - - Restore gdk_event_request_motions (it's needed even without event compression) - Remove cursor unref (it's aready de-referenced on gdk_window_set_cursor) - Improve XComposite message - Remove configurable delays - Fix test - ... and 37 more: https://git.openjdk.org/jfx/compare/3fd289f7...1943cc5a ------------- Changes: https://git.openjdk.org/jfx/pull/2139/files Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2139&range=24 Stats: 5106 lines in 29 files changed: 3707 ins; 786 del; 613 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
