> 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 58 commits:
- Merge branch 'master' into 8354943_v2
- Revert "[Linux] Robot: screencast restore token is wrongly assumed to be a
UUID"
This reverts commit 6230bca16d5f80e776b2c53e81a5d768422949e0.
- Revert "[Linux] Robot: screencast restore token is wrongly assumed to be a
UUID"
This reverts commit fa58a4e923d78f8aef6b84395e4a2318ab37bb3a.
- Merge branch '8396109' into 8354943_v2
- [Linux] Robot: screencast restore token is wrongly assumed to be a UUID
- [Linux] Robot: screencast restore token is wrongly assumed to be a UUID
- glass_window_ime.cpp: check for null jview
glass_window.h: review suggestions
glass_general.h: wrap log on a do {} while(0)
- - Ungrab focus when hiding the window, so IME does not try to use it after
closed
- - Avoid null title
- Nested changes can happen if java reacts to the change
- Extended stages with no view, call base.
- Merge branch 'master' into 8354943_v2
# Conflicts:
# tests/system/src/test/java/test/util/Util.java
- ... and 48 more: https://git.openjdk.org/jfx/compare/0165faf6...47605b4a
-------------
Changes: https://git.openjdk.org/jfx/pull/2139/files
Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2139&range=30
Stats: 5146 lines in 29 files changed: 3739 ins; 785 del; 622 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