protocol: define error codes for role reassignment

On the interfaces where it was missing:
- wl_data_device
- wl_shell
- wl_pointer
add an error code for requests that set a wl_surface role when the
wl_surface already has a different role.

This is needed for compositors to appropriately report wl_surface
role violations.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
Acked-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
Pekka Paalanen 2014-10-01 12:52:22 +03:00
parent aee813f1ff
commit 7a0b86ab22

View file

@ -525,6 +525,11 @@
A wl_data_device provides access to inter-client data transfer A wl_data_device provides access to inter-client data transfer
mechanisms such as copy-and-paste and drag-and-drop. mechanisms such as copy-and-paste and drag-and-drop.
</description> </description>
<enum name="error">
<entry name="role" value="0" summary="given wl_surface has another role"/>
</enum>
<request name="start_drag"> <request name="start_drag">
<description summary="start drag-and-drop operation"> <description summary="start drag-and-drop operation">
This request asks the compositor to start a drag-and-drop This request asks the compositor to start a drag-and-drop
@ -546,7 +551,8 @@
hotspot, but subsequent wl_surface.attach request can move the hotspot, but subsequent wl_surface.attach request can move the
relative position. Attach requests must be confirmed with relative position. Attach requests must be confirmed with
wl_surface.commit as usual. The icon surface is given the role of wl_surface.commit as usual. The icon surface is given the role of
a drag-and-drop icon. a drag-and-drop icon. If the icon surface already has another role,
it raises a protocol error.
The current and pending input regions of the icon wl_surface are The current and pending input regions of the icon wl_surface are
cleared, and wl_surface.set_input_region is ignored until the cleared, and wl_surface.set_input_region is ignored until the
@ -677,10 +683,15 @@
a basic surface. a basic surface.
</description> </description>
<enum name="error">
<entry name="role" value="0" summary="given wl_surface has another role"/>
</enum>
<request name="get_shell_surface"> <request name="get_shell_surface">
<description summary="create a shell surface from a surface"> <description summary="create a shell surface from a surface">
Create a shell surface for an existing surface. This gives Create a shell surface for an existing surface. This gives
the wl_surface the role of a shell surface. the wl_surface the role of a shell surface. If the wl_surface
already has another role, it raises a protocol error.
Only one shell surface can be associated with a given surface. Only one shell surface can be associated with a given surface.
</description> </description>
@ -1393,11 +1404,16 @@
and scrolling. and scrolling.
</description> </description>
<enum name="error">
<entry name="role" value="0" summary="given wl_surface has another role"/>
</enum>
<request name="set_cursor"> <request name="set_cursor">
<description summary="set the pointer surface"> <description summary="set the pointer surface">
Set the pointer surface, i.e., the surface that contains the Set the pointer surface, i.e., the surface that contains the
pointer image (cursor). This request gives the surface the role pointer image (cursor). This request gives the surface the role
of a cursor. of a cursor. If the surface already has another role, it raises
a protocol error.
The cursor actually changes only if the pointer The cursor actually changes only if the pointer
focus for this device is one of the requesting client's surfaces focus for this device is one of the requesting client's surfaces