[PATCH] xdg-shell: Document error conditions when popup and surface getters

Jonas Ådahl jadahl at gmail.com
Tue May 5 00:35:15 PDT 2015


Document that a wl_surface can only be assigned either a xdg_popup or
xdg_surface once and that if the client still stries to do that an error
is raised.

Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
---

Changes since the previous versions:

Explicitly allow to create a new xdg_surfce/popup from a previously used
wl_surface as long as it had the same role and its corresponding role
object (xdg_popup/surface) has been destroyed.


Jonas

 protocol/xdg-shell.xml | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml
index 1629bd0..d0aeb51 100644
--- a/protocol/xdg-shell.xml
+++ b/protocol/xdg-shell.xml
@@ -78,7 +78,13 @@
     <request name="get_xdg_surface">
       <description summary="create a shell surface from a surface">
 	This creates an xdg_surface for the given surface and gives it the
-	xdg_surface role. See the documentation of xdg_surface for more details.
+	xdg_surface role. A wl_surface can only be given an xdg_surface role
+	once. If get_xdg_surface is called with a wl_surface that already has
+	an active xdg_surface associated with it, or if it had any other role,
+	an error is raised.
+
+	See the documentation of xdg_surface for more details about what an
+	xdg_surface is and how it is used.
       </description>
       <arg name="id" type="new_id" interface="xdg_surface"/>
       <arg name="surface" type="object" interface="wl_surface"/>
@@ -87,10 +93,16 @@
     <request name="get_xdg_popup">
       <description summary="create a popup for a surface">
 	This creates an xdg_popup for the given surface and gives it the
-	xdg_popup role. See the documentation of xdg_popup for more details.
+	xdg_popup role. A wl_surface can only be given an xdg_popup role
+	once. If get_xdg_popup is called with a wl_surface that already has
+	an active xdg_popup associated with it, or if it had any other role,
+	an error is raised.
 
 	This request must be used in response to some sort of user action
 	like a button press, key press, or touch down event.
+
+	See the documentation of xdg_popup for more details about what an
+	xdg_popup is and how it is used.
       </description>
       <arg name="id" type="new_id" interface="xdg_popup"/>
       <arg name="surface" type="object" interface="wl_surface"/>
-- 
2.1.4



More information about the wayland-devel mailing list