<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wayland/protocol, branch 1.24</title>
<subtitle>[no description]</subtitle>
<id>http://git.sudomsg.com/mirror/wayland/atom/protocol?h=1.24</id>
<link rel='self' href='http://git.sudomsg.com/mirror/wayland/atom/protocol?h=1.24'/>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/'/>
<updated>2025-05-20T20:57:52Z</updated>
<entry>
<title>protocol: drop reference to linux-explicit-synchronization</title>
<updated>2025-05-20T20:57:52Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2025-03-15T23:13:17Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9b169ff945a8fdddc3a92b1990bddc29a7d24465'/>
<id>urn:sha1:9b169ff945a8fdddc3a92b1990bddc29a7d24465</id>
<content type='text'>
This protocol has been superseded. Replace this outdated reference
with a generic hint that protocol extensions may provide this
functionality.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: Clarify sending of wl_seat.capabilities</title>
<updated>2025-05-20T20:20:13Z</updated>
<author>
<name>David Edmundson</name>
<email>davidedmundson@kde.org</email>
</author>
<published>2024-09-26T11:15:37Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3214f858e2bc226c16c280d832a836eae8a671c4'/>
<id>urn:sha1:3214f858e2bc226c16c280d832a836eae8a671c4</id>
<content type='text'>
It wasn't explicitly stated that wl_seat.capabilities should also
be sent on bind. Everyone did because it was obviously sensible.

This also clarifies that static seat name should be sent before
announcing capabilities so clients can associate these devices with the
right seat name.

Signed-off-by: David Edmundson &lt;davidedmundson@kde.org&gt;
</content>
</entry>
<entry>
<title>protocol: Clarify wl_buffer.release description</title>
<updated>2025-03-15T23:12:07Z</updated>
<author>
<name>Michel Dänzer</name>
<email>mdaenzer@redhat.com</email>
</author>
<published>2025-01-21T14:27:22Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6137c8c21383d7ebb92cf3331be56ca0aecccd5d'/>
<id>urn:sha1:6137c8c21383d7ebb92cf3331be56ca0aecccd5d</id>
<content type='text'>
Sebastian pointed out that the existing text could be read as
wl_buffer.destroy not being allowed before the wl_buffer.release event
arrives, contrary to what the wl_surface.attach description says.
Clarify to be consistent with the latter.

This is a follow-up for
https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/141 .

Signed-off-by: Michel Dänzer &lt;mdaenzer@redhat.com&gt;

v2:
* Simplify clarification, don't talk about callbacks. (Julian Orth)
* Add reference to details in the description of wl_surface.attach.
  (Daniel Stone)
v3:
* Tweak clarification again. (Sebastian Wick)
v4:
* Make clarification even less ambiguous. (Simon Ser, Julian Orth)
v5:
* Just refer to the description of wl_surface.attach instead of trying
  to clarify anything here. (Sebastian Wick)
</content>
</entry>
<entry>
<title>protocol: add wl_fixes interface</title>
<updated>2024-11-18T09:25:20Z</updated>
<author>
<name>Julian Orth</name>
<email>ju.orth@gmail.com</email>
</author>
<published>2024-04-24T14:17:58Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=10df74c240d3cff4bd56bf17ebfc1a54883e00f5'/>
<id>urn:sha1:10df74c240d3cff4bd56bf17ebfc1a54883e00f5</id>
<content type='text'>
This commit describes a new wl_fixes interface that can be used to
destroy wl_registry objects.

Users of libwayland-client should use it as follows:

- call wl_fixes_destroy_registry(registry)
- call wl_registry_destroy(registry)

Users of libwayland-server should, in their implementation of the
request, call wl_resource_destroy(registry).

It should be similar in other protocol implementations.

Signed-off-by: Julian Orth &lt;ju.orth@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: document that wl_surface.offset is role-specific</title>
<updated>2024-10-05T14:06:51Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-10-19T14:34:26Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=38f91fe6adb1c4e6347dc34111e17514dac4a439'/>
<id>urn:sha1:38f91fe6adb1c4e6347dc34111e17514dac4a439</id>
<content type='text'>
This request doesn't make sense for all surface roles. For instance,
for maximized/tiled/fullscreen xdg_toplevel, for xdg_popup, for
layer-shell surfaces, etc.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>Add wl_keyboard key repeat events</title>
<updated>2024-09-23T15:23:45Z</updated>
<author>
<name>Andri Yngvason</name>
<email>andri@yngvason.is</email>
</author>
<published>2024-02-21T21:43:36Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1b0d45e9c6bc05399092f50b6c27bcdb43869e58'/>
<id>urn:sha1:1b0d45e9c6bc05399092f50b6c27bcdb43869e58</id>
<content type='text'>
This allows the compositor to take over the responsibility of repeating
keys.

Signed-off-by: Andri Yngvason &lt;andri@yngvason.is&gt;
</content>
</entry>
<entry>
<title>protocol: clients should not emulate key-press events on enter</title>
<updated>2024-09-10T07:36:48Z</updated>
<author>
<name>Julian Orth</name>
<email>ju.orth@gmail.com</email>
</author>
<published>2024-09-06T11:28:07Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7c6259e9ad7562d824b024975b80e471b365d5fc'/>
<id>urn:sha1:7c6259e9ad7562d824b024975b80e471b365d5fc</id>
<content type='text'>
The previous change introducing the logical state caused some confusion.
Clarify that most application should not use the list of pressed keys.

Signed-off-by: Julian Orth &lt;ju.orth@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: clarify divergence in compositor behaviour</title>
<updated>2024-05-29T12:23:38Z</updated>
<author>
<name>Hugo Osvaldo Barrera</name>
<email>hugo@whynothugo.nl</email>
</author>
<published>2024-05-08T18:54:19Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=26c419e046a70521e07b849faae901c7521d90df'/>
<id>urn:sha1:26c419e046a70521e07b849faae901c7521d90df</id>
<content type='text'>
This is intended to only document the current situation. Whether further
behaviour will be defined is out of scope and left for protocol v7.

See: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/363
Signed-off-by: Hugo Osvaldo Barrera &lt;hugo@whynothugo.nl&gt;
</content>
</entry>
<entry>
<title>protocol: explicitly describe wl_keyboard state</title>
<updated>2024-05-09T14:43:19Z</updated>
<author>
<name>Julian Orth</name>
<email>ju.orth@gmail.com</email>
</author>
<published>2024-04-17T09:24:50Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9e4f25692792df679660b390324842c19c0031a5'/>
<id>urn:sha1:9e4f25692792df679660b390324842c19c0031a5</id>
<content type='text'>
And the allowed state transitions.

There has been some confusion regarding which state transitions are
allowed. This change should clarify this.

Signed-off-by: Julian Orth &lt;ju.orth@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: define content updates and their internal queue</title>
<updated>2024-04-24T16:32:06Z</updated>
<author>
<name>Sebastian Wick</name>
<email>sebastian.wick@redhat.com</email>
</author>
<published>2024-04-03T14:20:47Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9069af78a71f6b2aadb11334e5bef9a670a5043d'/>
<id>urn:sha1:9069af78a71f6b2aadb11334e5bef9a670a5043d</id>
<content type='text'>
Multiple protocols use the term content update without a fill
definition. It makes sense to define it in the core protocol so that not
every other protocol has to define it.

This is supposed to retain the current semantics and only changes the
documentation while defining new terms.

Signed-off-by: Sebastian Wick &lt;sebastian.wick@redhat.com&gt;
</content>
</entry>
<entry>
<title>protocol: mark wl_pointer.axis_discrete as deprecated</title>
<updated>2024-04-24T16:18:28Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2024-03-12T13:21:54Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=da8e1bbc45bde2debc6c8a1f9e3c67cb964de968'/>
<id>urn:sha1:da8e1bbc45bde2debc6c8a1f9e3c67cb964de968</id>
<content type='text'>
Since version 8, this event isn't sent anymore.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>Add support for the deprecated-since XML attribute</title>
<updated>2024-04-24T16:18:28Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-07-19T10:50:34Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ee12e69b8fb8c55460126e4e527eb4f7fee5526e'/>
<id>urn:sha1:ee12e69b8fb8c55460126e4e527eb4f7fee5526e</id>
<content type='text'>
This marks a request, event or enum entry as deprecated since a
given version.

Note that it's not clear what it means if an entry is deprecated
at some version, and the enum is used from some completely different
interface than where it was defined. However, that's a more general
issue with enums, see:
https://gitlab.freedesktop.org/wayland/wayland/-/issues/435

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
References: https://gitlab.freedesktop.org/wayland/wayland/-/issues/89
</content>
</entry>
<entry>
<title>Clarify behavior of buffer transformations</title>
<updated>2024-04-23T09:08:09Z</updated>
<author>
<name>Julian Orth</name>
<email>ju.orth@gmail.com</email>
</author>
<published>2024-02-27T13:21:05Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=5eeaac6e1114fddeb36682ef1eead967c06e9b02'/>
<id>urn:sha1:5eeaac6e1114fddeb36682ef1eead967c06e9b02</id>
<content type='text'>
The new text describes how

- Mutter
- Plasma
- Sway 1.8
- Jay

behave.

Sway 1.9 flipped the behavior of 90 degree and 270 degree
set_buffer_transform requests. [mpv] also changed the behavior of its
vo_wayland_dmabuf backend which makes it only work correctly on sway
1.9.

[mpv]: https://github.com/mpv-player/mpv/pull/12509

It seems that the previous text was open to interpretation or at least
caused some amount of confusion.

Signed-off-by: Julian Orth &lt;ju.orth@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: Undefine wl_display_sync callback data</title>
<updated>2024-04-23T08:43:44Z</updated>
<author>
<name>Colin Kinloch</name>
<email>colin.kinloch@collabora.com</email>
</author>
<published>2024-04-15T10:47:11Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=af1dc3ef4bbbc62675a68ff524edd577f2a56ece'/>
<id>urn:sha1:af1dc3ef4bbbc62675a68ff524edd577f2a56ece</id>
<content type='text'>
Signed-off-by: Colin Kinloch &lt;colin.kinloch@collabora.com&gt;
</content>
</entry>
<entry>
<title>wl_touch.cancel: document lack of frame event</title>
<updated>2024-03-28T13:27:54Z</updated>
<author>
<name>Isaac Freund</name>
<email>mail@isaacfreund.com</email>
</author>
<published>2024-03-15T17:02:44Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4945f2664fced2cb7b6d836169cfe6e87ee19b90'/>
<id>urn:sha1:4945f2664fced2cb7b6d836169cfe6e87ee19b90</id>
<content type='text'>
This appears to be what at least wlroots-based compositors and kwin do
in practice. However, it's not abundantly clear from the protocol text
what the expected behavior here is. This patch fixes that.

Signed-off-by: Isaac Freund &lt;mail@isaacfreund.com&gt;
</content>
</entry>
<entry>
<title>protocol: document that color channels provide electrical values</title>
<updated>2024-03-12T13:04:51Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2024-03-06T10:19:09Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=aa2a6d560bb2ec39b0643103942dc7b3dfa5976c'/>
<id>urn:sha1:aa2a6d560bb2ec39b0643103942dc7b3dfa5976c</id>
<content type='text'>
Expand the work done in [1] to document that all channels store
electrical values. See the discussion in [2].

[1]: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/316
[2]: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/250#note_2311377

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: mention wl_surface events from wl_output.{scale,transform}</title>
<updated>2024-02-21T09:14:23Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-10-25T11:25:44Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a74aa93394a6d572eb48b1898658dad3e0c5f720'/>
<id>urn:sha1:a74aa93394a6d572eb48b1898658dad3e0c5f720</id>
<content type='text'>
The wl_output events should not be used anymore for guessing the
preferred scale and transform of a surface. We have explicit events
for that now.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: clarify pending wl_buffer destruction</title>
<updated>2024-01-27T15:17:28Z</updated>
<author>
<name>Kirill Primak</name>
<email>vyivel@eclair.cafe</email>
</author>
<published>2024-01-19T10:34:37Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8f499bf4045f88f3a4b4b0a445befca467bebe20'/>
<id>urn:sha1:8f499bf4045f88f3a4b4b0a445befca467bebe20</id>
<content type='text'>
This matches the current behavior of KWin, Mutter, and Weston.

References: https://gitlab.freedesktop.org/wayland/wayland/-/issues/387
Signed-off-by: Kirill Primak &lt;vyivel@eclair.cafe&gt;
</content>
</entry>
<entry>
<title>protocol: add wl_shm.release request</title>
<updated>2024-01-19T15:12:29Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-11-21T15:59:11Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f06736a8a0880ab159d946b06407268ddb41bd4d'/>
<id>urn:sha1:f06736a8a0880ab159d946b06407268ddb41bd4d</id>
<content type='text'>
Allows clients to cleanly release wl_shm objects. Useful for clients
using multiple wl_registry objects (e.g. via libraries).

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: clarify scale expecations</title>
<updated>2024-01-19T14:35:06Z</updated>
<author>
<name>Ben Widawsky</name>
<email>ben@bwidawsk.net</email>
</author>
<published>2024-01-02T23:56:25Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8072ab0a505d8aeb7b34d3ecd297ca501979d905'/>
<id>urn:sha1:8072ab0a505d8aeb7b34d3ecd297ca501979d905</id>
<content type='text'>
Since the positivity of zero is debatable, and, in some cases scale was simply
underspecified, clarify the situation.

Signed-off-by: Ben Widawsky &lt;ben@bwidawsk.net&gt;
</content>
</entry>
<entry>
<title>protocol: document wl_surface.offset for sub-surfaces</title>
<updated>2024-01-19T14:14:15Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-10-19T14:31:52Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=dc1da181db066415edfb73f4d9a579bc7b72b223'/>
<id>urn:sha1:dc1da181db066415edfb73f4d9a579bc7b72b223</id>
<content type='text'>
Document that the request is ignored, since this is the behavior
of most compositors.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: wl_subsurface will never be focused</title>
<updated>2023-12-27T18:02:07Z</updated>
<author>
<name>Julian Orth</name>
<email>ju.orth@gmail.com</email>
</author>
<published>2022-05-05T12:11:23Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6626d4d98c192130681543d59ff5e0e7bac9ab4a'/>
<id>urn:sha1:6626d4d98c192130681543d59ff5e0e7bac9ab4a</id>
<content type='text'>
The spec does not describe which actions cause the compositor to assign
keyboard focus to a surface, leaving this up to the compositor.
Compositors differ in their behavior when the user clicks on a
sub-surface. Some will move the keyboard focus to the subsurface whereas
others will only ever assign the keyboard focus to toplevel surfaces.
Some applications (e.g. firefox) seem to require the second behavior.

This patch specifies that sub-surfaces never get the keyboard focus.

Signed-off-by: Julian Orth &lt;ju.orth@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: improve wl_subsurface.{set_position,place_above} description</title>
<updated>2023-11-21T15:54:58Z</updated>
<author>
<name>Kirill Primak</name>
<email>vyivel@eclair.cafe</email>
</author>
<published>2023-10-23T08:14:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=82d8b21827c4f58013a4061fb3c813d9ae80407e'/>
<id>urn:sha1:82d8b21827c4f58013a4061fb3c813d9ae80407e</id>
<content type='text'>
Don't mention when the parent surface state is applied; the parent
surface isn't necessarily a sub-surface.

Signed-off-by: Kirill Primak &lt;vyivel@eclair.cafe&gt;
</content>
</entry>
<entry>
<title>protocol: clarify defaults with wl_compositor@v6</title>
<updated>2023-11-21T15:50:11Z</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2023-10-26T17:01:54Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8a19dc19a1eee48cff9fea03dca4952bc2967d46'/>
<id>urn:sha1:8a19dc19a1eee48cff9fea03dca4952bc2967d46</id>
<content type='text'>
This should be sufficient for clients to not decide to fallback to
output based logic to determine scaling/transform when compositor
doesn't send any of the v6 events.

Signed-off-by: Kirill Chibisov &lt;contact@kchibisov.com&gt;
</content>
</entry>
<entry>
<title>protocol: refer to wl_surface.offset in wl_data_device.start_drag</title>
<updated>2023-11-21T15:36:00Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-10-19T14:29:07Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=e4eb42d073056201d4569ddff16743265f1eedf6'/>
<id>urn:sha1:e4eb42d073056201d4569ddff16743265f1eedf6</id>
<content type='text'>
Passing an offset to wl_surface.attach is not supported in the
latest version of the interface.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: fix whitespace</title>
<updated>2023-07-19T11:01:17Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-06-22T09:09:48Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=72da004b3eed19a94265d564f1fa59276ceb4340'/>
<id>urn:sha1:72da004b3eed19a94265d564f1fa59276ceb4340</id>
<content type='text'>
This file uses tabs instead of 8 spaces.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: refer to wl_surface.offset in set_cursor</title>
<updated>2023-05-23T09:33:43Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2023-05-09T10:04:13Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a3c499493b10a77562f782d9fbf988f1b93eba9b'/>
<id>urn:sha1:a3c499493b10a77562f782d9fbf988f1b93eba9b</id>
<content type='text'>
The offset in wl_surface.attach has been superseded by
wl_surface.offset. Refer to the new request instead of using the
deprecated one.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: specify the exact form of premultiplication</title>
<updated>2023-05-09T12:52:58Z</updated>
<author>
<name>Sebastian Wick</name>
<email>sebastian.wick@redhat.com</email>
</author>
<published>2023-05-09T11:55:53Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f3026c916ef91d78040913298170d5e538dd6618'/>
<id>urn:sha1:f3026c916ef91d78040913298170d5e538dd6618</id>
<content type='text'>
There are two ways to do pre-multiplication of the alpha channel into
the color channels: on optical values or on electrical values. While
pre-multiplication with optical values is arguably more correct, because
operations like blending or scaling require pre-multiplied, optical
color channels, wayland and compositors by default work with
pre-multiplied electrical values. This is most likely a convention that
Wayland took from Cairo.

This commit makes sure that the expectation of pre-multiplied electrical
values is properly documented.

Signed-off-by: Sebastian Wick &lt;sebastian.wick@redhat.com&gt;
</content>
</entry>
<entry>
<title>protocol: add new shm formats</title>
<updated>2023-05-03T19:10:32Z</updated>
<author>
<name>Manuel Stoeckl</name>
<email>code@mstoeckl.com</email>
</author>
<published>2023-03-28T01:30:10Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=d40052e083be1e26a4ef628b00fb5d969826164f'/>
<id>urn:sha1:d40052e083be1e26a4ef628b00fb5d969826164f</id>
<content type='text'>
This brings the format list up to date with libdrm 2.4.115.

Signed-off-by: Manuel Stoeckl &lt;code@mstoeckl.com&gt;
</content>
</entry>
<entry>
<title>protocol: improve wl_keyboard focus documentation</title>
<updated>2023-04-12T13:37:51Z</updated>
<author>
<name>Xaver Hugl</name>
<email>xaver.hugl@gmail.com</email>
</author>
<published>2022-08-09T17:17:22Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1e259a255a07cd16b31fc99e6bba3e9368fae6d9'/>
<id>urn:sha1:1e259a255a07cd16b31fc99e6bba3e9368fae6d9</id>
<content type='text'>
The compositor must not send any key events while a surface is not focused,
but in order to allow for common actions like ctrl+scroll for zooming to work
with unfocused surfaces it may do so with modifiers.

Signed-off-by: Xaver Hugl &lt;xaver.hugl@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: disallow re-using wl_data_source</title>
<updated>2023-04-04T11:39:08Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2019-02-20T13:03:55Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=307b23626d9fccc4ab9f72b23940f26c54505b0e'/>
<id>urn:sha1:307b23626d9fccc4ab9f72b23940f26c54505b0e</id>
<content type='text'>
As pointed out in [1], re-using a wl_data_source for multiple start_drag or
set_selection requests has bad consequences, because this object has events
that allo tracking the state of a selection/drag-and-drop operation. Tracking
two operations at the same time isn't possible with this interface.

[1]: https://lists.freedesktop.org/archives/wayland-devel/2019-January/039936.html

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Signed-off-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>protocol: Clarify meaning of input region for cursors, DnD icons</title>
<updated>2023-02-27T20:51:51Z</updated>
<author>
<name>Mikhail Gusarov</name>
<email>dottedmag@dottedmag.net</email>
</author>
<published>2022-10-20T21:53:13Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6cdeae1becef114c064b7021c5dd59d36630975c'/>
<id>urn:sha1:6cdeae1becef114c064b7021c5dd59d36630975c</id>
<content type='text'>
Input region is ignored for cursors, DnD icons. Current wording
implies that this state is temporary, but surfaces never lose the
role once assigned, so reword to make it clearer.

Signed-off-by: Mikhail Gusarov &lt;dottedmag@dottedmag.net&gt;
</content>
</entry>
<entry>
<title>protocol: reorder wl_data_offer.source_actions and wl_data_device.enter</title>
<updated>2023-02-27T20:43:41Z</updated>
<author>
<name>Vlad Zahorodnii</name>
<email>vlad.zahorodnii@kde.org</email>
</author>
<published>2022-09-21T14:42:58Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3815803633a6d3bbde7e0cb9118b834e805cb409'/>
<id>urn:sha1:3815803633a6d3bbde7e0cb9118b834e805cb409</id>
<content type='text'>
Most compositors send the wl_data_offer.source_actions event before the
wl_data_device.enter event, i.e. after creation of the data offer. This
contradicts to the wayland spec.

On the other hand, it's reasonable to send all the information useful to
the client before the enter event, rather than send mime types before the
enter event and source actions (that don't depend on drop target) after
the enter event.

On the client side, toolkits such as Qt and GTK already expect to see the
source actions before receiving the enter event.

Given all of that, this change adjusts the spec to match the behavior
observed in the compositors in the wild.

Signed-off-by: Vlad Zahorodnii &lt;vlad.zahorodnii@kde.org&gt;
</content>
</entry>
<entry>
<title>protocol: do not change pending x and y when attaching a buffer</title>
<updated>2023-02-27T20:39:41Z</updated>
<author>
<name>Sebastian Wick</name>
<email>sebastian.wick@redhat.com</email>
</author>
<published>2023-02-14T12:33:22Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2aec8f59e9c02925205ec3b2a2d420b63287c7f5'/>
<id>urn:sha1:2aec8f59e9c02925205ec3b2a2d420b63287c7f5</id>
<content type='text'>
Attaching a buffer with interface version 5 requires clients to pass
zero to x and y but it still affects the pending surface state.
Attaching a buffer after a request to offset therefore sets the pending
x and y to zero. The intent of version 5 was to allow exactly this
sequence of requests to work so let's just make sure the protocol
actually spells it out.

Signed-off-by: Sebastian Wick &lt;sebastian.wick@redhat.com&gt;
</content>
</entry>
<entry>
<title>protocol: add wl_pointer's axis relative physical direction</title>
<updated>2023-02-21T15:32:03Z</updated>
<author>
<name>Peter Hutterer</name>
<email>peter.hutterer@who-t.net</email>
</author>
<published>2017-07-29T11:34:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1ef773be76ec0f45312622da7720ae6917bdf789'/>
<id>urn:sha1:1ef773be76ec0f45312622da7720ae6917bdf789</id>
<content type='text'>
This event adds the physical direction of the axis motion, relative to the
axis event we get. Right now, when natural scrolling is enabled things like
virtual volume sliders move the wrong way round.

By adding the axis motion direction, we can have toolkits swap the scroll
direction for applicable widgets, getting the right behavior on all widgets.

Signed-off-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
Reviewed-by: Yong Bakos &lt;ybakos@humanoriented.com&gt;
</content>
</entry>
<entry>
<title>protocol: add wl_surface.preferred_buffer_transform</title>
<updated>2023-02-07T13:33:09Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-11-26T12:26:34Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=d443241635cf86e4fdb91a781ec702bc8828d703'/>
<id>urn:sha1:d443241635cf86e4fdb91a781ec702bc8828d703</id>
<content type='text'>
Same as the new wl_surface.preferred_buffer_scale event but for
transform.

No version bump needed since the previous commit did that.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: add wl_surface.preferred_buffer_scale</title>
<updated>2023-02-07T13:33:09Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-03-28T17:58:04Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9afab91d212164b56c7eefd234c798fc59ae3fd8'/>
<id>urn:sha1:9afab91d212164b56c7eefd234c798fc59ae3fd8</id>
<content type='text'>
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).

This commit introduces a new wl_surface.preferred_buffer_scale event to allow
compositors to directly indicate the preferred scale factor for each surface.

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

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/271
</content>
</entry>
<entry>
<title>protocol: wl_subsurface::destroy does not remove the role</title>
<updated>2023-01-16T10:09:32Z</updated>
<author>
<name>Mikhail Gusarov</name>
<email>dottedmag@dottedmag.net</email>
</author>
<published>2022-10-20T21:31:33Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9700155edaae37bf91b55b58c1c2adf2ed142282'/>
<id>urn:sha1:9700155edaae37bf91b55b58c1c2adf2ed142282</id>
<content type='text'>
Role assigned to wl_surface cannot be removed.
Delete contradicting text from wl_subsurface::destroy documentation.

Signed-off-by: Mikhail Gusarov &lt;dottedmag@dottedmag.net&gt;
</content>
</entry>
<entry>
<title>protocol: add note about wl_buffer/wl_callback version</title>
<updated>2022-12-07T09:04:49Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-12-05T17:29:23Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7f1c51a55613350488fa88f283462fca18f533a1'/>
<id>urn:sha1:7f1c51a55613350488fa88f283462fca18f533a1</id>
<content type='text'>
This is an exception which can be confusing. Add an explicit note
about it in the protocol text.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: add defunct_role_object error</title>
<updated>2022-11-29T13:46:54Z</updated>
<author>
<name>Kirill Primak</name>
<email>vyivel@eclair.cafe</email>
</author>
<published>2022-10-15T17:26:42Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=0dc23e380a59fcf8a670273dc65816c2cc6de472'/>
<id>urn:sha1:0dc23e380a59fcf8a670273dc65816c2cc6de472</id>
<content type='text'>
This commit adds wl_surface.defunct_role_object error, which has
semantics similar to xdg_wm_base.defunct_surfaces error, and is sent
when a client destroys a surface while the corresponding role object
still exists.

Signed-off-by: Kirill Primak &lt;vyivel@eclair.cafe&gt;
</content>
</entry>
<entry>
<title>protocol: remove wl_subsurface lifetime contradiction</title>
<updated>2022-11-29T13:46:54Z</updated>
<author>
<name>Kirill Primak</name>
<email>vyivel@eclair.cafe</email>
</author>
<published>2022-10-15T17:05:34Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=68dfa1183f937a9a34d0a8582e4ffe5eace4a32d'/>
<id>urn:sha1:68dfa1183f937a9a34d0a8582e4ffe5eace4a32d</id>
<content type='text'>
This statement assumes that a wl_surface can be destroyed before the
corresponding wl_subsurface, which is not true, as wl_surface
description explicitly states that the role object must be destroyed
before the wl_surface itself.

Signed-off-by: Kirill Primak &lt;vyivel@eclair.cafe&gt;
</content>
</entry>
<entry>
<title>protocol: add wl_compositor.error.bad_parent</title>
<updated>2022-09-21T10:17:57Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-09-05T07:18:47Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=b9632822b73b982669a2a59e02b2a98c2f7b47dd'/>
<id>urn:sha1:b9632822b73b982669a2a59e02b2a98c2f7b47dd</id>
<content type='text'>
This forbids loops in sub-surface trees.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: mention protocol error name in wl_subcompositor.get_subsurface</title>
<updated>2022-09-21T10:17:57Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2022-09-05T07:11:18Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c2c6ef9cbe7177ccbfd06d5da3a97da27d0b4368'/>
<id>urn:sha1:c2c6ef9cbe7177ccbfd06d5da3a97da27d0b4368</id>
<content type='text'>
Let's be explicit here.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: minor clarification for axis_discrete events</title>
<updated>2022-06-30T09:12:08Z</updated>
<author>
<name>Peter Hutterer</name>
<email>peter.hutterer@who-t.net</email>
</author>
<published>2022-06-24T03:45:58Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=68842b34039eb8efb6b7677cba5a0ddfceac34e0'/>
<id>urn:sha1:68842b34039eb8efb6b7677cba5a0ddfceac34e0</id>
<content type='text'>
Explicitly spell out that multiple axis_discrete events *for the same axis*
within the same wl_pointer.frame are not permitted.

References: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/911#note_1438099

Signed-off-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
</content>
</entry>
<entry>
<title>wl_shell is not mandatory</title>
<updated>2022-04-11T23:04:26Z</updated>
<author>
<name>Demi Marie Obenour</name>
<email>demiobenour@gmail.com</email>
</author>
<published>2021-10-05T14:06:07Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1078ee4993cc45a77bf7af79cb3f307a132123c6'/>
<id>urn:sha1:1078ee4993cc45a77bf7af79cb3f307a132123c6</id>
<content type='text'>
Even though it is part of wayland.xml, wl_shell is not mandatory for
compositors to implement, and may be removed in a future version.

Signed-off-by: Demi Marie Obenour &lt;demiobenour@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: add the wl_pointer.axis_value120 events</title>
<updated>2022-03-28T17:31:27Z</updated>
<author>
<name>Peter Hutterer</name>
<email>peter.hutterer@who-t.net</email>
</author>
<published>2020-03-31T03:47:04Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=868eb99eb07965f34461693d82c68dba503aec46'/>
<id>urn:sha1:868eb99eb07965f34461693d82c68dba503aec46</id>
<content type='text'>
These events are for high-resolution wheels. Each logical wheel click
represents an axis value120 value of 120, fractions of a wheel click an
integer fraction thereof. The new event replaces
wl_pointer.axis_discrete for wl_pointer versions 8 and above.

Signed-off-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
</content>
</entry>
<entry>
<title>protocol: wl_shm.format events are actually sent after bind</title>
<updated>2022-02-21T10:13:45Z</updated>
<author>
<name>Mikhail Gusarov</name>
<email>dottedmag@dottedmag.net</email>
</author>
<published>2022-02-20T19:10:49Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=af8b5c07826ed2f2624cf87c0e2da4f8e9089ee0'/>
<id>urn:sha1:af8b5c07826ed2f2624cf87c0e2da4f8e9089ee0</id>
<content type='text'>
Protocol documentation mistakenly specified that wl_shm.format
events are sent at connection setup time, but that's impossible
(clients do not yet know ID of wl_shm object at the time) and
contradicts implementation in libwayland.

Signed-off-by: Mikhail Gusarov &lt;dottedmag@dottedmag.net&gt;
</content>
</entry>
<entry>
<title>protocol: xkb_v1 is null-terminated</title>
<updated>2022-01-31T21:31:07Z</updated>
<author>
<name>Julian Orth</name>
<email>ju.orth@gmail.com</email>
</author>
<published>2022-01-10T16:31:07Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ee92898cb5fbf2d34aed7d593cbc8966b1b563de'/>
<id>urn:sha1:ee92898cb5fbf2d34aed7d593cbc8966b1b563de</id>
<content type='text'>
Closes #270

Signed-off-by: Julian Orth &lt;ju.orth@gmail.com&gt;
</content>
</entry>
<entry>
<title>doc: fix typo in wl_data_device.data_offer</title>
<updated>2022-01-10T10:07:22Z</updated>
<author>
<name>shierote</name>
<email>taishi2060@gmail.com</email>
</author>
<published>2021-12-20T12:25:23Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=aa6a07c2fe9c95843d9686b4f9a43f63ee67e071'/>
<id>urn:sha1:aa6a07c2fe9c95843d9686b4f9a43f63ee67e071</id>
<content type='text'>
Signed-off-by: Taishi Eguchi &lt;taishi2060@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: clarify wl_shm_pool.resize</title>
<updated>2022-01-07T13:30:29Z</updated>
<author>
<name>Max Ihlenfeldt</name>
<email>mihlenfeldt@igalia.com</email>
</author>
<published>2021-12-15T17:14:56Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8893573651f16f1c3079c1bcbba7d82663c4f6a1'/>
<id>urn:sha1:8893573651f16f1c3079c1bcbba7d82663c4f6a1</id>
<content type='text'>
Add a note that the request only changes the size of the memory mapping
and does not touch the mapped file.

Signed-off-by: Max Ihlenfeldt &lt;mihlenfeldt@igalia.com&gt;
</content>
</entry>
<entry>
<title>protocol: clarify wl_data_offer::selection</title>
<updated>2021-11-15T13:20:41Z</updated>
<author>
<name>Jan Grulich</name>
<email>jgrulich@redhat.com</email>
</author>
<published>2021-07-16T11:35:37Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=78590b3aff9c71407ff245c120b4d844e6b79c41'/>
<id>urn:sha1:78590b3aff9c71407ff245c120b4d844e6b79c41</id>
<content type='text'>
Clearly specify that switching focus within the same client
doesn't mean a new selection will be send.

Signed-off-by: Jan Grulich &lt;jgrulich@redhat.com&gt;
</content>
</entry>
<entry>
<title>protocol: sync wl_shm.format with libdrm 2.4.108</title>
<updated>2021-11-12T01:15:22Z</updated>
<author>
<name>Manuel Stoeckl</name>
<email>code@mstoeckl.com</email>
</author>
<published>2021-11-12T00:47:14Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1638dad6137d7dd26a4a8c5d931bbb5c52dda46c'/>
<id>urn:sha1:1638dad6137d7dd26a4a8c5d931bbb5c52dda46c</id>
<content type='text'>
The four new formats added (all 16 bpc, RGB colorspace) are very useful
for applications providing high bit depth content and rendering their
buffers on CPU, as computations with 16 bit unsigned integers are often
more efficient than with the (half float, 10 bit) alternative formats.

Signed-off-by: Manuel Stoeckl &lt;code@mstoeckl.com&gt;
</content>
</entry>
<entry>
<title>protocol: wl_shm uses pre-multiplied alpha</title>
<updated>2021-11-04T08:53:47Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-10-31T11:10:08Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ebfc70cdf7c63082e2c9cccf47f0616a2e8969b0'/>
<id>urn:sha1:ebfc70cdf7c63082e2c9cccf47f0616a2e8969b0</id>
<content type='text'>
Add a note about pre-multiplied alpha for all wl_shm formats.
Include an escape hatch in the spec to allow other protocol
extensions to override this.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/61
</content>
</entry>
<entry>
<title>protocol: add wl_output.{name,description}</title>
<updated>2021-10-28T14:03:04Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-01-24T11:26:53Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=9c05e6c475e0f67519d88f285a971b5e51455a1d'/>
<id>urn:sha1:9c05e6c475e0f67519d88f285a971b5e51455a1d</id>
<content type='text'>
This is inspired from xdg-output-unstable-v1. This allows clients to
get the name and description without having to use xdg_output. This
should eventually allow us to restrict xdg_output to clients like
Xwayland.

The name is a unique non-persistent user-friendly string that can be
used to refer to an output. This can be used by Wayland clients to
refer to a specific wl_output (e.g. across processes or in CLI
arguments).

The description is a non-unique user-friendly string that can be
displayed to the user.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/7
</content>
</entry>
<entry>
<title>protocol: add note about wl_output.done in events</title>
<updated>2021-10-28T14:03:04Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-09-28T13:36:14Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=aa883215174f0b389c1b7999b6a19c2be2c05c99'/>
<id>urn:sha1:aa883215174f0b389c1b7999b6a19c2be2c05c99</id>
<content type='text'>
Mention that geometry, mode and scale wl_output events are followed
by a done event.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: Add wl_surface.offset</title>
<updated>2021-10-28T12:39:39Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2021-03-22T07:56:30Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=fceabb7e9e167e1100c244bb4f460c8a346a5478'/>
<id>urn:sha1:fceabb7e9e167e1100c244bb4f460c8a346a5478</id>
<content type='text'>
This is meant to address the issue where the call to 'wl_surface.attach'
is done by e.g. Vulkan, meaning applications cannot affect the values of
the offset passed as the x and y arguments.

The lack of ability to pass these is problematic when using the Vulkan
for e.g. drawing DND surfaces, as the buffer offset is used to implement
the drag icon hotspots.

Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/148
Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Reviewed-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: mention that buffers with alpha are assumed premultiplied</title>
<updated>2021-09-29T14:43:21Z</updated>
<author>
<name>Matt Hoosier</name>
<email>matt.hoosier@garmin.com</email>
</author>
<published>2021-09-29T14:41:34Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=c6c1bbe4abf9e5ce159442be22c1278d39844c08'/>
<id>urn:sha1:c6c1bbe4abf9e5ce159442be22c1278d39844c08</id>
<content type='text'>
This turns out to be the default assumption by compositors, OpenGL, and the DRM
framework. Let's say it explicitly to avoid misinterpretation.

See https://lists.freedesktop.org/archives/wayland-devel/2021-September/041990.html.

Signed-off-by: Matt Hoosier &lt;matt.hoosier@garmin.com&gt;
</content>
</entry>
<entry>
<title>protocol: mention that keymap mapping must be read-only</title>
<updated>2021-09-16T08:25:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-09-04T14:18:43Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=7ef305d073f8d86aa7bf8a41ffcbbc7984b1f55a'/>
<id>urn:sha1:7ef305d073f8d86aa7bf8a41ffcbbc7984b1f55a</id>
<content type='text'>
It may be obvious that the mapping must be established in read-only
mode, but it wasn't specified in the specification text.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: clarify wl_seat.name description</title>
<updated>2021-07-06T11:57:39Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-06-29T10:47:04Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=767765d584df2c7ec759eab8edfaa79f31a2b692'/>
<id>urn:sha1:767765d584df2c7ec759eab8edfaa79f31a2b692</id>
<content type='text'>
Define the expected properties of the seat name.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: allow immediate wl_buffer.destroy if not re-used</title>
<updated>2021-06-11T14:05:27Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-05-26T10:07:17Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3e897faa29d13bef6f9af31d4f2e89a526e60f4c'/>
<id>urn:sha1:3e897faa29d13bef6f9af31d4f2e89a526e60f4c</id>
<content type='text'>
Allow wl_buffer objects to be destroyed without having to wait for
wl_buffer.release if the underlying storage isn't going to be
re-used.

The main motivation for this is to avoid glitches when a client is
torn down. When a client disconnects, all of its objects are destroyed
in arbitrary order. However some compositors will still need to
access the destroyed buffer's underlying storage afterwards, e.g. for
visual effects (fade-out) or for atomic layout updates (wait for other
clients to commit a new buffer before hiding the buffer).

It's still incorrect for clients to destroy a wl_buffer and mutate
the underlying storage without waiting for wl_buffer.release.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/185
</content>
</entry>
<entry>
<title>protocol: drop reference to wl_drm</title>
<updated>2021-05-27T08:48:40Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-05-26T10:00:17Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f8bea2450d0fc1d68b22ed36b9e500afdd4026c7'/>
<id>urn:sha1:f8bea2450d0fc1d68b22ed36b9e500afdd4026c7</id>
<content type='text'>
Change the wl_drm reference to linux-dmabuf. wl_drm is a legacy,
private Mesa protocol that shouldn't be used by regular clients.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>Document serial param usage in wl_pointer.set_cursor</title>
<updated>2021-05-04T15:26:48Z</updated>
<author>
<name>Nick Diego Yamane</name>
<email>nickdiego@igalia.com</email>
</author>
<published>2021-04-28T15:34:05Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=208fc99e66677fed61ba97382025f95db737696a'/>
<id>urn:sha1:208fc99e66677fed61ba97382025f95db737696a</id>
<content type='text'>
Serial is supposed to contain the latest wl_pointer.enter value received
by clients but it was not even mentioned in the docs, so add it to avoid
misinterpretations.

Signed-off-by: Nick Diego Yamane &lt;nickdiego@igalia.com&gt;
</content>
</entry>
<entry>
<title>protocol: Specify wl_callback::done to be a destructor event</title>
<updated>2021-01-27T17:49:10Z</updated>
<author>
<name>Tadeo Kondrak</name>
<email>me@tadeo.ca</email>
</author>
<published>2020-06-11T19:41:09Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ddf21afa6ee99ad6a00705cc74b62a1c4907776b'/>
<id>urn:sha1:ddf21afa6ee99ad6a00705cc74b62a1c4907776b</id>
<content type='text'>
It's the only destructor event in the core protocol, and destructor
events were previously unannotated.

Signed-off-by: Tadeo Kondrak &lt;me@tadeo.ca&gt;
</content>
</entry>
<entry>
<title>protocol: Add type attribute to events</title>
<updated>2021-01-27T17:49:10Z</updated>
<author>
<name>Tadeo Kondrak</name>
<email>me@tadeo.ca</email>
</author>
<published>2020-06-11T19:39:56Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=efab39642ec9f446b98b2fb7c194306a033099a4'/>
<id>urn:sha1:efab39642ec9f446b98b2fb7c194306a033099a4</id>
<content type='text'>
This allows specifying events to be destructors, which is useful for
non-C language bindings. It is unused in wayland-scanner.

Signed-off-by: Tadeo Kondrak &lt;me@tadeo.ca&gt;
</content>
</entry>
<entry>
<title>protocol: sync wl_shm.format with libdrm 2.4.104</title>
<updated>2021-01-19T16:16:54Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2021-01-17T10:51:39Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=db8b64ca5e6f92eb2377aa1c182f38db8fbc351f'/>
<id>urn:sha1:db8b64ca5e6f92eb2377aa1c182f38db8fbc351f</id>
<content type='text'>
This adds 4 new formats.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Reviewed-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Acked-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>protocol: deprecate non-current wl_output.mode</title>
<updated>2020-10-29T13:07:20Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2020-04-16T17:08:53Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6741dafbf7a50e8a3f3b7667b4fecbf7c55f21ff'/>
<id>urn:sha1:6741dafbf7a50e8a3f3b7667b4fecbf7c55f21ff</id>
<content type='text'>
The current wl_output.mode event has several issues when used to advertise
modes that aren't current:

- It's not possible to remove some modes. This is an issue for virtual
  outputs and when the kernel prunes some modes because of link limitations.
- wl_output.mode fails to carry metadata such as aspect ratio, which results
  in duplicated or missing modes.
- It's not clear, given the current set of protocols, how non-current modes
  are useful to clients. Xwayland ignores non-current modes.

GNOME and wlroots already only advertise the current mode because of these
issues.

If a protocol needs the clients to know about all available modes, it should
advertise these modes itself instead of relying on wl_output.mode.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/92
</content>
</entry>
<entry>
<title>protocol: make it clear wl_surface.enter/leave are not for frame throttling</title>
<updated>2020-10-29T13:02:50Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2020-07-15T07:39:25Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=d42b39ccab5baff33eb6a0d38d6d46ef0c442e89'/>
<id>urn:sha1:d42b39ccab5baff33eb6a0d38d6d46ef0c442e89</id>
<content type='text'>
Some clients rely on wl_surface.enter/leave to start/stop their rendering
loop.

There are cases where this doesn't work:

- Some compositors don't send wl_surface.leave when a toplevel is hidden.
  For instance Sway doesn't send this event when a toplevel is on an inactive
  workspace (but doesn't send wl_surface.frame events).
- Some compositors might still want applications to continue to render even if
  away from outputs. For instance a compositor that allows to screen record
  individual toplevels might not send a wl_surface.enter event for hidden
  toplevels.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: Clarify how clients can cancel a drag operation</title>
<updated>2020-10-29T12:17:28Z</updated>
<author>
<name>Nick Diego Yamane</name>
<email>nickdiego@igalia.com</email>
</author>
<published>2020-07-08T14:48:19Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=53dd99793dd95fcfc187a0ee81ab289dfbe7fc2a'/>
<id>urn:sha1:53dd99793dd95fcfc187a0ee81ab289dfbe7fc2a</id>
<content type='text'>
Explicitly say that destroying a wl_data_source previously used in a
wl_data_device::start_drag request will cancel the DND session. This
is currently the only way to do it from client side (besides those
"indirect" ones already documented) and all compositors work like that
but it is not clear spec-wise it is the expected behaviour.

Signed-off-by: Nick Diego Yamane &lt;nickdiego@igalia.com&gt;
</content>
</entry>
<entry>
<title>protocol: Minor gramatical fix.</title>
<updated>2020-08-14T00:30:22Z</updated>
<author>
<name>Christopher James Halse Rogers</name>
<email>christopher.halse.rogers@canonical.com</email>
</author>
<published>2020-08-14T00:24:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4e16ef0aed8db425afc8910b2a9708b57e165d39'/>
<id>urn:sha1:4e16ef0aed8db425afc8910b2a9708b57e165d39</id>
<content type='text'>
Signed-off-by: Christopher James Halse Rogers &lt;christopher.halse.rogers@canonical.com&gt;
</content>
</entry>
<entry>
<title>protocol: disambiguate key codes in wl_keyboard.key</title>
<updated>2020-06-16T09:35:14Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2020-02-03T14:45:58Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=1dfd2169dad8c7a39506b52afbedd42b7a1d9dbe'/>
<id>urn:sha1:1dfd2169dad8c7a39506b52afbedd42b7a1d9dbe</id>
<content type='text'>
Explain that wl_keyboard.key yields platform-specific key codes.
Some compositors use Linux key codes (defined in the
linux/input-event-codes.h header file, e.g. KEY_ESC), however
clients should not assume that this is always the case. The only
reliable way for clients to interpret key codes is to feed them
into a keyboard mapping.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>Clarify clients behavior on wl_keyboard.leave</title>
<updated>2020-06-12T21:15:11Z</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2020-05-24T11:12:44Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=57b7c7d9463f391a1cae6fa049b2f98a3de3d09e'/>
<id>urn:sha1:57b7c7d9463f391a1cae6fa049b2f98a3de3d09e</id>
<content type='text'>
Clients must assume that every key, including modifiers, are lifted
after getting wl_keyboard.leave event, not doing so could lead to key repeat
keep going after the user changes focus, or stuck modifiers, when the user
interacts with client without keyboard focus.

Signed-off-by: Kirill Chibisov &lt;contact@kchibisov.com&gt;
</content>
</entry>
<entry>
<title>Clarify the order of wl_keyboard.modifiers</title>
<updated>2020-06-12T21:15:11Z</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2020-05-23T23:28:31Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4aa6eb868a8646b99c5b552a48aa31043530a269'/>
<id>urn:sha1:4aa6eb868a8646b99c5b552a48aa31043530a269</id>
<content type='text'>
Consider that we set the modifier for the modifier key as well, and that
you have the option to change your layout when both shifts pressed. This
realized by making the shift keys produce 'Group_switch' when you press
the shift key and the shift modifier is already active. So sending modifier
before the key event will result in 'Group_switch' each time you press
shift.

That being said, the order of modifiers should be updated after the
key/enter event, so it'll only affect future keypresses, not the current one.

See: https://lists.x.org/archives/xorg-devel/2014-July/043110.html

Signed-off-by: Kirill Chibisov &lt;contact@kchibisov.com&gt;
</content>
</entry>
<entry>
<title>protocol: add seat missing_capability error</title>
<updated>2020-06-05T09:36:39Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2020-05-28T08:00:12Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=21fad23a47ae3891fb92d6de4b82a00857e952c2'/>
<id>urn:sha1:21fad23a47ae3891fb92d6de4b82a00857e952c2</id>
<content type='text'>
The protocol says:

&gt; It is a protocol violation to issue this request on a seat that
&gt; has never had the pointer capability.

But never defines an error code.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Closes: https://gitlab.freedesktop.org/wayland/wayland/-/issues/165
</content>
</entry>
<entry>
<title>Replace initial 8 spaces with a tab for all xml files</title>
<updated>2020-04-29T12:21:33Z</updated>
<author>
<name>Peter Hutterer</name>
<email>peter.hutterer@who-t.net</email>
</author>
<published>2020-04-16T05:57:07Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=df969706f4cd479a525a69a13f86589d6b313b5b'/>
<id>urn:sha1:df969706f4cd479a525a69a13f86589d6b313b5b</id>
<content type='text'>
This is the style used in wayland.xml which is the only file we really
care about for git blame information. So let's adjust all others to that
style for consistency and fix editorconfig to avoid messing this up in
the future.

Signed-off-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
</content>
</entry>
<entry>
<title>protocol: add invalid_size error to wl_surface</title>
<updated>2020-03-05T14:48:36Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2020-02-26T17:30:57Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8d5fadad47aad420b0d83fffc8ad573766a9c75e'/>
<id>urn:sha1:8d5fadad47aad420b0d83fffc8ad573766a9c75e</id>
<content type='text'>
This allows the compositor to send an error when the client submits a buffer
whose size is not divisible by the buffer scale. Previously, the protocol said
it was a client error but didn't specify any error code.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Closes: https://gitlab.freedesktop.org/wayland/wayland/issues/145
</content>
</entry>
<entry>
<title>protocol: add missing enums for wl_data_device_manager.dnd_action</title>
<updated>2020-01-21T11:40:09Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2020-01-13T18:00:33Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=d377ab9c077e8b1989385ae44aa6d8433e1a0825'/>
<id>urn:sha1:d377ab9c077e8b1989385ae44aa6d8433e1a0825</id>
<content type='text'>
Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: fix typo in wl_data_offer.set_actions description</title>
<updated>2020-01-03T05:13:49Z</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2020-01-03T05:06:51Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3a05d94dc25c0e6386fa5efd27885ceb0dc48396'/>
<id>urn:sha1:3a05d94dc25c0e6386fa5efd27885ceb0dc48396</id>
<content type='text'>
Signed-off-by: Michael Forney &lt;mforney@mforney.org&gt;
</content>
</entry>
<entry>
<title>protocol: invalid_method is sent on malformed request</title>
<updated>2019-09-10T09:47:19Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2019-07-11T17:03:55Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=4c2b7375612cd2eb8565898f76fb5e171b17777b'/>
<id>urn:sha1:4c2b7375612cd2eb8565898f76fb5e171b17777b</id>
<content type='text'>
Currently libwayland sends a wl_display.invalid_method when arguments provided
with a request are invalid (e.g. too short, see wl_client_connection_data).

Clarify the protocol by adding that invalid_method can be sent on malformed
request.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: sync wl_shm.format with libdrm 2.4.99</title>
<updated>2019-09-06T12:09:22Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2019-09-02T17:58:33Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=b69e547fa44e99f5d802ffb301027432b38005b8'/>
<id>urn:sha1:b69e547fa44e99f5d802ffb301027432b38005b8</id>
<content type='text'>
This adds 42 new formats.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>protocol: add a comment about the wl_shm.format script</title>
<updated>2019-09-06T12:09:22Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2019-09-02T17:57:08Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=e771ca91d76f2d35ed8fc65479666d2b0ac27ae8'/>
<id>urn:sha1:e771ca91d76f2d35ed8fc65479666d2b0ac27ae8</id>
<content type='text'>
Add a comment to wl_shm.format to advise contributors to use the automated
script (generate-shm-formats.py) instead of updating the list manually.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>Add an automated script to update wl_shm.format</title>
<updated>2019-09-06T12:09:22Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2019-09-02T17:51:02Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8854f64baeec50ebb0fe5af748574c290cce0682'/>
<id>urn:sha1:8854f64baeec50ebb0fe5af748574c290cce0682</id>
<content type='text'>
This prevents mismatches and missing formats between wl_shm.formats and
drm_fourcc.h.

The script collects DRM_FORMAT_* constants from drm_fourcc.h, compares the list
with the current wayland.xml entries (checking for any mismatch) and then
appends missing entries to wayland.xml.

Enum values are obtained by executing a generated C file which prints the
constants. There is no other reliable way to get these values as they are
defined via various macros.

There is no widespread Python library able to parse an XML file and format it
with all whitespace preserved. For this reason, we don't use an XML library to
create the new XML elements. Instead, we keep track of the line number of the
last wl_shm.format enum entry and add new entries right after. To be able to
read the line number of an element, we use lxml (the standard library doesn't
retain line number information).

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>Improve description of wl_surface</title>
<updated>2019-08-17T11:12:54Z</updated>
<author>
<name>Drew DeVault</name>
<email>sir@cmpwn.com</email>
</author>
<published>2019-08-02T21:17:32Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=17e49ba8443d76f05df89c9663e3661af292a1a4'/>
<id>urn:sha1:17e49ba8443d76f05df89c9663e3661af292a1a4</id>
<content type='text'>
The original text makes some assumptions about surfaces which may not be
true and fails to capture some details which are important to the
essential traits of a wl_surface.
</content>
</entry>
<entry>
<title>wayland.xml: Make releases for multiple 'wl_surface.attach' undefined</title>
<updated>2019-07-09T17:26:11Z</updated>
<author>
<name>Scott Anderson</name>
<email>scott.anderson@collabora.com</email>
</author>
<published>2019-05-13T09:40:12Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a281783339f7be4d5b6a65c2ba0a6d70ed6d0f1d'/>
<id>urn:sha1:a281783339f7be4d5b6a65c2ba0a6d70ed6d0f1d</id>
<content type='text'>
Fixes #46

The way wl_buffer is specified makes this situation inherently racy,
meaning there is no way this can be done unambiguously. Current real
compositor implementations already have differing behaviour for this, so
any client relying on it was already broken, if any such client exists.

This specifically only singles out wl_buffer.release as being undefined;
every other aspect of it should still be valid. This is so existing and
correct uses of multiple attaches are still valid, where a
"static"/immutable wl_buffer is being used (i.e. they don't care about
the release event).

Signed-off-by: Scott Anderson &lt;scott.anderson@collabora.com&gt;
</content>
</entry>
<entry>
<title>protocol: clarify wl_display.delete_id description</title>
<updated>2019-07-05T23:42:24Z</updated>
<author>
<name>Manuel Stoeckl</name>
<email>code@mstoeckl.com</email>
</author>
<published>2019-07-05T23:42:16Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6dbf9f72b686f741d0b210d97813f400ca762475'/>
<id>urn:sha1:6dbf9f72b686f741d0b210d97813f400ca762475</id>
<content type='text'>
libwayland-server only sends wl_display.delete_id events when
it responds to a client's destruction of a client-allocated
object. server-allocated objects are silently removed, as per
`wl_resource_destroy`.

Signed-off-by: Manuel Stoeckl &lt;code@mstoeckl.com&gt;
</content>
</entry>
<entry>
<title>protocol: allow to send a zero output refresh rate</title>
<updated>2019-04-27T21:44:04Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2018-09-29T20:25:47Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=3ab56ef8fa5aa64c07ad10fbaeb09b0c3b708ccf'/>
<id>urn:sha1:3ab56ef8fa5aa64c07ad10fbaeb09b0c3b708ccf</id>
<content type='text'>
Fixed refresh rate doesn't always make sense for all outputs. In case
it's not available or not relevant, allow compositors to send zero.

For instance the can be the case for virtual outputs.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
</content>
</entry>
<entry>
<title>wayland.xml: document invalid_finish error in wl_data_offer.finish</title>
<updated>2019-04-19T16:32:08Z</updated>
<author>
<name>Harish Krupo</name>
<email>harishkrupo@gmail.com</email>
</author>
<published>2019-04-19T16:32:08Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ea11878d00493b76f3bf4d6cf66ceef351c0a032'/>
<id>urn:sha1:ea11878d00493b76f3bf4d6cf66ceef351c0a032</id>
<content type='text'>
Explicitly state that the invalid_finish protocol error would be raised
when wl_data_offer.finish request is sent for non drag-and-drop
operations.

Signed-off-by: Harish Krupo &lt;harishkrupo@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: warn clients about some wl_output properties</title>
<updated>2019-02-20T16:07:05Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2018-10-26T09:13:04Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=8c121e10178070f23a06c438a292703fe76d5c06'/>
<id>urn:sha1:8c121e10178070f23a06c438a292703fe76d5c06</id>
<content type='text'>
All wl_output properties don't always make sense for all
compositors.

Some compositors might not implement a "global compositor space",
(e.g. 3D compositors) in which case properties like x and y don't
make sense.

Some compositors might expose virtual outputs, in which case modes,
make and model are not relevant.

In a lot of these situations, information from xdg_output is better
suited.

Compositors also expose output refresh rate, which shouldn't be used
for synchronization purposes.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
Reviewed-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Reviewed-by: Derek Foreman &lt;derek.foreman.wayland@gmail.com&gt;
</content>
</entry>
<entry>
<title>proto, server: Add internal server error message. (v2)</title>
<updated>2019-01-29T13:58:19Z</updated>
<author>
<name>Christopher James Halse Rogers</name>
<email>christopher.halse.rogers@canonical.com</email>
</author>
<published>2018-11-20T07:02:50Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=d325140289d5767cdef5fc31f7d89b451c1066aa'/>
<id>urn:sha1:d325140289d5767cdef5fc31f7d89b451c1066aa</id>
<content type='text'>
Many languages such as C++ or Rust have an unwinding error-reporting
mechanism. Code in these languages can (and must!) wrap request handling
callbacks in unwind guards to avoid undefined behaviour.

As a consequence such code will detect internal server errors, but have
no way to communicate such failures to the client.

This adds a WL_DISPLAY_ERROR_IMPLEMENTATION error to wl_display so that
such code can notify (and disconnect) clients which hit internal bugs.
While servers can currently abuse other wl_display errors for the same
effect, adding an explicit error code allows clients to tell the
difference between errors which are their fault and errors which are the
server's fault. This is particularly interesting for automated bug
reporting.

v2: Rename error from "internal" to "implementation", in sympathy with
    X11's BadImplementation error.
    Add more justification in the commit message.

Signed-off-by: Christopher James Halse Rogers &lt;christopher.halse.rogers@canonical.com&gt;
Acked-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.com&gt;
</content>
</entry>
<entry>
<title>protocol: prefer wl_surface.damage_buffer</title>
<updated>2018-11-30T15:25:14Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2018-11-05T13:57:00Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=921d0548035673a1bf6aeb9396b9bc728133411e'/>
<id>urn:sha1:921d0548035673a1bf6aeb9396b9bc728133411e</id>
<content type='text'>
This commit makes wl_surface.damage_buffer preferred over wl_surface.damage.
wl_surface.damage can be implemented in a non-optimal way by the compositor
(e.g. by always damaging the whole buffer).

Having two requests makes it complicated for the compositor to handle damage,
making it necessary to transform one into the other's coordinates.

Moreover, integration with wp_viewporter is tricky.

Signed-off-by: Simon Ser &lt;contact@emersion.fr&gt;
Acked-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Reviewed-by: Derek Foreman &lt;derek.foreman.samsung@gmail.com&gt;
</content>
</entry>
<entry>
<title>protocol: Bump seat to version 7 and require keymaps be private</title>
<updated>2018-11-30T15:17:57Z</updated>
<author>
<name>Derek Foreman</name>
<email>derek.foreman.samsung@gmail.com</email>
</author>
<published>2018-11-01T16:15:46Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=905c0a341ddf0a885811d19e2b79c65a3f1d210c'/>
<id>urn:sha1:905c0a341ddf0a885811d19e2b79c65a3f1d210c</id>
<content type='text'>
Weston commit 76829fc4eaea329d2a525c3978271e13bd76c078 (and similar
commits for other compositors) protects the compositor's keyboard
mapping from client damage by duplicating the keymap for every
client.

On some systems there are other potential fixes for this - such as
using sealed memfds on linux - but we can't use them since
essentially all client code anywhere has mapped the keyboard map
with a MAP_SHARED mmap() call.

While we can't break years worth of code, we can require any future
clients to use MAP_PRIVATE if they use a seat version above 6.

If a compositor can't use sealing or a similar facility, it should
still protect itself with copied keymaps, but clients must always
assume shared mapping of a keymap will fail.

Signed-off-by: Derek Foreman &lt;derek.foreman.samsung@gmail.com&gt;
Reviewed-by: Simon Ser &lt;contact@emersion.fr&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
Reviewed-by: Philipp Kerling &lt;pkerling@casix.org&gt;
Acked-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>protocol: allow to send a zero physical output size</title>
<updated>2018-07-24T10:26:17Z</updated>
<author>
<name>Simon Ser</name>
<email>contact@emersion.fr</email>
</author>
<published>2018-07-03T11:27:05Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=504db9d8e5d3a6de4abbbb0ae11a82fd81b3771f'/>
<id>urn:sha1:504db9d8e5d3a6de4abbbb0ae11a82fd81b3771f</id>
<content type='text'>
Physical size doesn't always make sense for all outputs. In case
it's not available or not relevant, allow compositors to send zero.

Acked-by: Daniel Stone &lt;daniels@collabora.com&gt;
Acked-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Acked-by: Olivier Fourdan &lt;ofourdan@redhat.com&gt;
</content>
</entry>
<entry>
<title>tests: Check for wrong fd delivery with zombie objects</title>
<updated>2018-01-09T15:20:00Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2017-12-06T17:22:25Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=ff992951a7e6da0a8e54786ef7371ae420ce6c9c'/>
<id>urn:sha1:ff992951a7e6da0a8e54786ef7371ae420ce6c9c</id>
<content type='text'>
Until recently, if an event attempting to deliver an fd to a zombie
object was demarshalled after the object was made into a zombie, we
leaked the fd and left it in the buffer.

If another event attempting to deliver an fd to a live object was in that
same buffer, the zombie's fd would be delivered instead.

This test recreates that situation.

While this is a ridiculously contrived way to force this race - delivering
an event from a destruction handler - I do have reports of this race
being hit in real world code.

Signed-off-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Acked-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>tests: Add a test for fd leaks on zombie objects</title>
<updated>2018-01-09T15:20:00Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2017-12-06T17:22:24Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f74c9b98db49ce16e037c3012590c4a24a4fc32e'/>
<id>urn:sha1:f74c9b98db49ce16e037c3012590c4a24a4fc32e</id>
<content type='text'>
Until recently, if a client destroying a resource raced with the
server generating an event on that resource that delivered a file
descriptor, we would leak the fd.

This tests for a leaked fd from that race condition.

Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
Signed-off-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>protocol: make get_subsurface double-buffered</title>
<updated>2017-12-05T10:43:17Z</updated>
<author>
<name>Pekka Paalanen</name>
<email>pekka.paalanen@collabora.co.uk</email>
</author>
<published>2016-05-09T11:45:05Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=de24f4dd76652e11b552e61eb715285b9123b1d1'/>
<id>urn:sha1:de24f4dd76652e11b552e61eb715285b9123b1d1</id>
<content type='text'>
The existing specification was not explicitly clear on when
wl_subcompositor.get_subsurface request actually adds the sub-surface to
the parent in the compositor's scenegraph. The implicit assumption was
that this happens immediately, but it was not written anywhere.

If it happens immediately, the client doing things in a wrong order may
cause a glitch on screen. Particularly, if the wl_surface B that is
going to be a sub-surface for wl_surface A (the parent) already has a
buffer committed, and the parent surface is mapped, then get_subsurface
will (may?) cause wl_surface B to become mapped immediately. That leaves
no time to set up the sub-surface z-order or position before mapping,
hence there can be a visible glitch.

The way to avoid that, given that the parent surface is mapped, is to
not commit a buffer to wl_surface B until all the sub-surface setup is
done.

However, doing the sub-surface setup always requires a wl_surface.commit
on the parent surface unless the defaults happen to be correct.

To make setting up a subsurface slightly easier by removing one
possibility for a glitch, this patch amends the specification to require
a wl_surface.commit on the parent surface for get_subsurface to
complete. The sub-surface cannot become mapped before a parent commit.

This change may break existing clients that relied on the glitchy
sequence to not need a parent surface commit to map the sub-surface.
However, presumably all uses would at least issue a
wl_subsurface.set_position, which requires a parent surface commit to
apply. That would guarantee that there is a parent surface commit after
get_subsurface, and so reduces the chances of breaking anything.

In other cases, this change may simply remove a possibility for the
glitch.

This patch also adds a note about changing wl_surface.commit behaviour
on wl_subcompositor.get_subsurface. (That could be a separate patch.)

The behaviour of wl_subsurface.destroy remains as specified, even though
it is now slightly asymmetrical to get_subsurface. This is emphasized by
adding the word "immediately". The effects of destruction were already
explicitly documented, as is the way to achieve synchronized unmapping,
so changing destruction behaviour would likely be more disruptive, and
also open up more corner cases (what would happen between destroy and
unmapping?).

Bug: https://phabricator.freedesktop.org/T7358
Signed-off-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
Reviewed-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Reviewed-by: Martin Gräßlin &lt;mgraesslin@kde.org&gt;
</content>
</entry>
<entry>
<title>protocol: Add deprecation note about wl_shell</title>
<updated>2017-12-04T19:45:38Z</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2017-12-02T02:57:45Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=698dde195837f3d0844b2725ba4ea8ce9ee7518c'/>
<id>urn:sha1:698dde195837f3d0844b2725ba4ea8ce9ee7518c</id>
<content type='text'>
Now that xdg_shell is stable and much better defined than wl_shell we
can finally deprecate wl_shell and guide users towards xdg_shell
instead.

Signed-off-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Acked-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>protocol: Suggest get_registry not be called frequently</title>
<updated>2017-10-02T08:45:56Z</updated>
<author>
<name>Derek Foreman</name>
<email>derekf@osg.samsung.com</email>
</author>
<published>2017-09-29T18:46:28Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=f6bbc975d30560a4cd73038b1cca840d330ed428'/>
<id>urn:sha1:f6bbc975d30560a4cd73038b1cca840d330ed428</id>
<content type='text'>
I've heard some complaints that wl_display.get_registry "leaks"
server memory because wl_registry has no destructor.  While this isn't
strictly true - all those resources are freed when the client
disconnects - it's a bit of a gotcha for neophytes.

Since wl_registry's version is not requested in any way through
wl_display.get_registry, we can't add a destructor request without
breaking ABI.  So let's be a little more clear about the result
of getting too many wl_registry objects.

Signed-off-by: Derek Foreman &lt;derekf@osg.samsung.com&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
Reviewed-by: Pekka Paalanen &lt;pekka.paalanen@collabora.co.uk&gt;
</content>
</entry>
<entry>
<title>protocol: add axis_source.wheel_tilt</title>
<updated>2017-01-24T10:00:19Z</updated>
<author>
<name>Peter Hutterer</name>
<email>peter.hutterer@who-t.net</email>
</author>
<published>2017-01-23T23:56:39Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=2f72d0a8a82dac8c961cb9b4b509208b84322937'/>
<id>urn:sha1:2f72d0a8a82dac8c961cb9b4b509208b84322937</id>
<content type='text'>
Unlike a wheel rotation, a wheel tilt is a discrete-only axis. Wheel rotations
are mapped to degrees in libinput but that that does not apply to wheel tilt
axes where there is no physical equivalent.

Signed-off-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
Reviewed-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Acked-by: Daniel Stone &lt;daniels@collabora.com&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
Reviewed-by: Yong Bakos &lt;ybakos@humanoriented.com&gt;
</content>
</entry>
<entry>
<title>protocol: indentation fixes</title>
<updated>2016-11-21T11:43:22Z</updated>
<author>
<name>Peter Hutterer</name>
<email>peter.hutterer@who-t.net</email>
</author>
<published>2016-11-21T11:43:22Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=a26ed0949ec21a26fbbb6fb02f775e2da45611ea'/>
<id>urn:sha1:a26ed0949ec21a26fbbb6fb02f775e2da45611ea</id>
<content type='text'>
8 spaces changed to one tab

Signed-off-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
Acked-by: Bryce Harrington &lt;bryce@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>protocol: spell out that we're using linux/input-event-codes.h button codes</title>
<updated>2016-11-21T11:07:12Z</updated>
<author>
<name>Peter Hutterer</name>
<email>peter.hutterer@who-t.net</email>
</author>
<published>2016-11-18T02:35:27Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=b4636b5e606177c5a771fcf4349fbf321fdf071c'/>
<id>urn:sha1:b4636b5e606177c5a771fcf4349fbf321fdf071c</id>
<content type='text'>
Because we already rely on it in the callers anyway. This is a retrofit, which
is not ideal but I'm not sure any compositor out there uses anything else.
Might as well define it.

Signed-off-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
Reviewed-by: Jonas Ådahl &lt;jadahl@gmail.com&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
<entry>
<title>protocol: Extend wl_touch with touchpoint shape and orientation</title>
<updated>2016-11-16T16:35:19Z</updated>
<author>
<name>Dennis Kempin</name>
<email>denniskempin@google.com</email>
</author>
<published>2016-11-11T19:40:55Z</published>
<link rel='alternate' type='text/html' href='http://git.sudomsg.com/mirror/wayland/commit/?id=6a18a87727c64719c68168568b9ab1e4d7c2d9c1'/>
<id>urn:sha1:6a18a87727c64719c68168568b9ab1e4d7c2d9c1</id>
<content type='text'>
This CL updates the wl_touch interface with a shape and
orientation event.
The shape/orientation of a touch point is not relevant for most UI
applications, but allows a better experience in some cases
such as drawing apps.

The events are used by the compositor to inform the client
about changes in the shape and orientation of a touchpoint, which is
approximated by an ellipse and it's angle to the y-axis.

The event is optional and only sent when compositor and the
touch device support this type of information. The client is
responsible for making a reasonable assumption about the
touch shape if no shape is reported.

Signed-off-by: Dennis Kempin &lt;denniskempin@google.com&gt;
Reviewed-by: Peter Hutterer &lt;peter.hutterer@who-t.net&gt;
Reviewed-by: Yong Bakos &lt;ybakos@humanoriented.com&gt;
Reviewed-by: Daniel Stone &lt;daniels@collabora.com&gt;
</content>
</entry>
</feed>
