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 <jad...@gmail.com>
Reviewed-By: Mike Blumenkrantz <zm...@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.13.0

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to