Xwayland surfaces do not get fractional scale events
Affected version
- Fedora 39
- mutter from git main at commit ed903c44
- Wayland / Xwayland
Bug summary
Xwayland surfaces do not get fractional scale update events.
Steps to reproduce
- Have a modified version of Xwayland that registers with
wp_fractional_scale_v1
protocol - Open an X11 applciation that maps a window with Xwayland
- Move the window between monitors of different fractional scales
What happened
No wp_fractional_scale.preferred_scale()
events for Xwayland surfaces.
What did you expect to happen
A wp_fractional_scale.preferred_scale()
event indicating the fractional scale factor changing between monitors (as it does with regular Wayland surfaces).
Relevant logs, screenshots, screencasts etc.
We discussed that with @verdre on Matrix last Friday.
As far as I can see, the event gets emitted from meta_wayland_surface_notify_highest_scale_monitor()
which is called from the signal "highest-scale-monitor-changed"
.
That signal is connected in meta_window_actor_wayland_constructed()
but this is not wahat is used with Xwayland surfaces. For X11 surfaces, we use meta_window_actor_x11_constructed()
which does not connect that signal so I suspect that's the reason why we do not get to call meta_wayland_surface_notify_highest_scale_monitor()
for X11/Xwayland surfaces.