Introduce wl_surface.configure_scale
Right now, clients need to bind to wl_output
globals, listen to wl_output.scale
, listen to wl_surface.enter/leave
, pick the highest scale factor.
This is an issue because it breaks Wayland's "policy, not mechanism" motto. Clients take the decision of which scale to use depending on the outputs they're on, compositors have no say in this (apart from faking output events, which isn't great).
Proposal: replace this with a wl_surface.configure_scale
event.
This would unlock features which require dynamically changing the scale such as:
- Accessibility features such as screen magnifier
- In a VR environment, render surfaces close to the eye at a higher scale
- HiDPI screenshots on LoDPI screens