[PATCH wayland-protocols v3 10/17] xdg-shell/popup: Allow custom parent by passing null as parent

Jonas Ådahl jadahl at gmail.com
Wed Nov 15 11:19:59 UTC 2017


Allow using some other protocol (custom, or future xdg_* based) to set
up the parent-child relationship of a popup. This allows future
protocols to use xdg_popup when mapping popups over surfaces not based
on xdg_surface.

An example use case for this is the window menu, where a shells UI
client can use xdg_popup to create popup menus over windows it does not
have a xdg_surface of by having a custom protocol setting up the proper
parent-child relationship.

Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
Reviewed-By: Mike Blumenkrantz <zmike at osg.samsung.com>
---
 stable/xdg-shell/xdg-shell.xml | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml
index 4c4c66b..77ce886 100644
--- a/stable/xdg-shell/xdg-shell.xml
+++ b/stable/xdg-shell/xdg-shell.xml
@@ -424,14 +424,17 @@
 
     <request name="get_popup">
       <description summary="assign the xdg_popup surface role">
-	This creates an xdg_popup object for the given xdg_surface and gives the
-	associated wl_surface the xdg_popup role.
+	This creates an xdg_popup object for the given xdg_surface and gives
+	the associated wl_surface the xdg_popup role.
+
+	If null is passed as a parent, a parent surface must be specified using
+	some other protocol, before committing the initial state.
 
 	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="parent" type="object" interface="xdg_surface"/>
+      <arg name="parent" type="object" interface="xdg_surface" allow-null="true"/>
       <arg name="positioner" type="object" interface="xdg_positioner"/>
     </request>
 
-- 
2.14.2



More information about the wayland-devel mailing list