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

Harshitha Onkar honkar at openjdk.org
Thu Feb 27 00:58:53 UTC 2025


On Tue, 25 Feb 2025 16:40:37 GMT, Alexander Zvegintsev <azvegint at openjdk.org> wrote:

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

test/jdk/java/awt/FullScreen/FullscreenWindowProps/FullscreenWindowProps.java line 58:

> 56:                 DisplayMode displayMode =
> 57:                         getGraphicsConfiguration().getDevice().getDisplayMode();
> 58:                 g.drawString(displayMode.toString(), 100, 100);

@azvegint 
This is on an unchanged line. The finally block in the test sets `gd.setFullScreenWindow(null);`
Is that sufficient or do we need to additionally restore the original display mode in the finally block?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23774#discussion_r1972642256


More information about the client-libs-dev mailing list