RFR: 8280991: [XWayland] No displayChanged event after setDisplayMode call [v2]

Alexander Zvegintsev azvegint at openjdk.org
Tue Feb 25 16:40:37 UTC 2025


> 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).

Alexander Zvegintsev has updated the pull request incrementally with one additional commit since the last revision:

  NoResizeEventOnDMChangeTest update

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/23774/files
  - new: https://git.openjdk.org/jdk/pull/23774/files/73b4968c..f7f022f7

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23774&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23774&range=00-01

  Stats: 9 lines in 1 file changed: 2 ins; 3 del; 4 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


More information about the client-libs-dev mailing list