[PATCH wayland] protocol: define the concept of wl_surface role

Pekka Paalanen ppaalanen at gmail.com
Mon Aug 18 07:14:12 PDT 2014


From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>

Define what a role is, and what restrictions there are.

A change to existing behaviour is that a role cannot be changed at all
once set. However, this is unlikely to cause problems, as there is no
reason to re-use wl_surfaces in clients.

Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
---
 protocol/wayland.xml | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 2d57f69..39af61f 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -973,8 +973,24 @@
       local coordinates of the pixel content, in case a buffer_transform
       or a buffer_scale is used.
 
-      Surfaces are also used for some special purposes, e.g. as
-      cursor images for pointers, drag icons, etc.
+      A surface without a "role" is fairly useless, a compositor does not
+      know where, when or how to present it. The role is the purpose of a
+      wl_surface. Examples of roles are a cursor for a pointer, a drag icon,
+      a sub-surface, and a window as defined by a shell protocol.
+
+      A surface can have only one role at a time. Initially a wl_surface
+      does not have a role. Once a role is set, it can never be set to a
+      different role again.
+
+      A role is set by a request in another interface than wl_surface
+      itself. The protocol specification of the other interface
+      defines, that the request gives a specific role to a wl_surface.
+      Often, this request also creates a new protocol object, that
+      represents the role and extends the interface to the wl_surface.
+      If such a new protocol object is created, clients are
+      recommended to destroy it before they destroy the wl_surface.
+      Whether destroying the wl_surface first is legal, depends on the
+      protocol interface related to the role.
     </description>
 
     <enum name="error">
-- 
1.8.5.5



More information about the wayland-devel mailing list