summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2015-12-07 15:43:35 +1000
committerBryce Harrington <bryce@osg.samsung.com>2015-12-07 14:26:47 -0800
commit87321d0f2fb61a3808e7a0cc1d71f82d065b2cd2 (patch)
treec647883236d7a83c4b03f12e4d7768444d2a58b9
parent3384f69ecf043d62a4e036c0353c2daa01d7c4d0 (diff)
downloadwayland-87321d0f2fb61a3808e7a0cc1d71f82d065b2cd2.tar.gz
protocol: specify behavior of get_pointer when capabilities change
Also applies to touch/keyboard Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Jonas Ã…dahl <jadahl@gmail.com>
-rw-r--r--protocol/wayland.xml33
1 files changed, 30 insertions, 3 deletions
diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 7ca5049..df8ed19 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -1396,6 +1396,27 @@
This is emitted whenever a seat gains or loses the pointer,
keyboard or touch capabilities. The argument is a capability
enum containing the complete set of capabilities this seat has.
+
+ When the pointer capability is added, a client may create a
+ wl_pointer object using the wl_seat.get_pointer request. This object
+ will receive pointer events until the capability is removed in the
+ future.
+
+ When the pointer capability is removed, a client should destroy the
+ wl_pointer objects associated with the seat where the capability was
+ removed, using the wl_pointer.release request. No further pointer
+ events will be received on these objects.
+
+ In some compositors, if a seat regains the pointer capability and a
+ client has a previously obtained wl_pointer object of version 4 or
+ less, that object may start sending pointer events again. This
+ behavior is considered a misinterpretation of the intended behavior
+ and must not be relied upon by the client. wl_pointer objects of
+ version 5 or later must not send events if created before the most
+ recent event notifying the client of an added pointer capability.
+
+ The above behavior also applies to wl_keyboard and wl_touch with the
+ keyboard and touch capabilities, respectively.
</description>
<arg name="capabilities" type="uint" enum="capability"/>
</event>
@@ -1406,7 +1427,9 @@
for this seat.
This request only takes effect if the seat has the pointer
- capability.
+ capability, or has had the pointer capability in the past.
+ It is a protocol violation to issue this request on a seat that has
+ never had the pointer capability.
</description>
<arg name="id" type="new_id" interface="wl_pointer"/>
</request>
@@ -1417,7 +1440,9 @@
for this seat.
This request only takes effect if the seat has the keyboard
- capability.
+ capability, or has had the keyboard capability in the past.
+ It is a protocol violation to issue this request on a seat that has
+ never had the keyboard capability.
</description>
<arg name="id" type="new_id" interface="wl_keyboard"/>
</request>
@@ -1428,7 +1453,9 @@
for this seat.
This request only takes effect if the seat has the touch
- capability.
+ capability, or has had the touch capability in the past.
+ It is a protocol violation to issue this request on a seat that has
+ never had the touch capability.
</description>
<arg name="id" type="new_id" interface="wl_touch"/>
</request>