Wayland clients are by design not allowed to change the resolution in Wayland. XRandR in Xwayland is just an emulation, it doesn't actually change the desktop resolution. This emulation is per window/x11 client, so different clients can have different emulated resolutions at the same time.
Any request to get the current display mode from the system will always return the original screen resolution, even if we are in emulated resolution. So with this fix, we store the last display mode set so that we can react correctly to the displayChanged event later. --- There are two system side fixes related to this issue, which causes missing ConfigureNotify events to be emitted when an emulated resolution change occurs: 1. https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/731 - emits when the resolution changes to an emulated one 2. https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/890 - emits when the resolution changes to a native one The second one is only available in GnomeShell 43+ (e.g. Ubuntu 22.10+), so one of the tests is excluded for versions below that. --- Testing looks good (manual + automated). ------------- Commit messages: - 8280991: [XWayland] No displayChanged event after setDisplayMode call Changes: https://git.openjdk.org/jdk/pull/23774/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23774&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8280991 Stats: 89 lines in 4 files changed: 85 ins; 1 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/23774.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23774/head:pull/23774 PR: https://git.openjdk.org/jdk/pull/23774