aboutsummaryrefslogtreecommitdiff
path: root/unstable/xdg-output/xdg-output-unstable-v1.xml
AgeCommit message (Collapse)Author
2019-07-25xdg-output: make xdg_output.description mutableSimon Ser
The output description is a human-readable text describing the output. Unlike the name which uniquely identifies the output, it's intended to be displayed to the user. It might be desirable for a compositor to update an output's description. For instance, when only one output is plugged in, it's not necessary to dump make, model, serial and connector to the description, something like "Dell U2717D" is enough. However when two identical outputs are plugged in it's necessary to add e.g. the connector type to tell them apart ("Dell U2717D on HDMI"). See [1] for a discussion about this. This commit bumps xdg_output's version to allow compositors to update the property. [1]: https://github.com/swaywm/wlroots/issues/1623 Signed-off-by: Simon Ser <contact@emersion.fr> Reviewed-by: Jonas Ådahl <jadahl@gmail.com> Acked-by: Olivier Fourdan <ofourdan@redhat.com>
2019-07-17xdg-output: deprecate the xdg_output.done eventSimon Ser
This commit makes it so a wl_output.done event is guaranteed to be sent with a xdg_output.done event. This protocol change has been discussed in a recent xorg-devel discussions [1]. First let's recap why a change is needed: Xwayland listens to both wl_output and xdg_output changes. When an output's properties change, Xwayland expects to receive both a wl_output.done event and an xdg_output.done event. If that's not the case, Xwayland doesn't update its state (so old state is still exposed to X11 clients). Most of the time, both objects will be updated at the same time (e.g. the current mode is changed, so both wl_output.mode and xdg_output.logical_size are sent) so this won't be an issue. However in some situations only one of wl_output or xdg_output changes. For instance: - The mode is changed at the same time as the scale, resulting in the same logical_size. - The compositor doesn't expose the outputs' position via wl_output, so whenever the position changes only xdg_output is updated. Both KDE [2] and wlroots [3] have experienced this issue. For this reason, I'd like to update the xdg-output protocol to make it mandatory to always send a wl_output.done event after xdg_output changes. This effectively makes wl_output.done atomically apply all output state (including the state of add-on objects like xdg_output). This approach is pretty similar to wl_surface.commit: this request will atomically apply surface state including the state of e.g. the xdg_surface object tied to the wl_surface. To update the protocol to reflect this new requirement we can either: - **Bump xdg_output version**. The current protocol doesn't specify that wl_output.done must be sent, adding this new requirement would be a breaking change. We need to fix Xwayland for the current xdg_output version (maybe make it non-atomic for the current version, atomic for the new one?). Should we deprecate xdg_output.done in the new version? - **Don't bump xdg_output version**. This clarifies what is expected in practice by Xwayland, a major xdg_output consumer, and what is currently implemented by all compositors. There's one issue with the "don't bump" approach: indeed in practice compositors always send wl_output.done and xdg_output.done in pairs, however the ordering between those two events is not guaranteed. This means some compositors might send this sequence: wl_output.geometry(…) wl_output.done() xdg_output.logical_position(…) xdg_output.done() In this case the wl_output.done event fails to atomically apply the xdg_output state. For this reason, I think bumping the version is a better approach. This commit also deprecates xdg_output.done, which doesn't have any purpose anymore. [1]: https://lists.x.org/archives/xorg-devel/2019-April/058148.html [2]: https://phabricator.kde.org/D19253 [3]: https://github.com/swaywm/sway/issues/4064 Signed-off-by: Simon Ser <contact@emersion.fr> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2018-07-16xdg-output: add a transform example for the logical sizeSimon Ser
Signed-off-by: Simon Ser <contact@emersion.fr> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2018-05-03xdg-output: Add name and description eventsDrew DeVault
This adds two events to the protocol. The goal is to allow clients to give the user the ability to select outputs with the same names the compositor uses and to identify outputs consistently across sessions. The output name is a short and stiff identifier with strict limits on permitted characters, which is suitable for storing in config files, command line arguments, etc. A warmer "description" event is also provided to (optionally) provide a more human readable name, and has much broader restrictions on its form. Signed-off-by: Drew DeVault <sir@cmpwn.com> Reviewed-by: Simon Ser <contact@emersion.fr> Reviewed-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> [Jonas: Fixed formatting and commit subject] Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2017-07-31Add xdg-output protocolOlivier Fourdan
This protocol aims at describing outputs in way which is more in line with the concept of an output on desktop oriented systems. Some information are more specific to the concept of an output for a desktop oriented system and may not make sense in other applications, such as IVI systems for example. The goal is to gradually move the desktop specific concepts out of the core wl_output protocol. For now it just features the position and logical size which describe the output position and size in the global compositor space. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>