git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit3919813ef8a52b43944c9499d8af2b45091f991c
parent10994ea004
authorIsaac Freund <[email protected]>
date2024-06-19 12:02
rwm: parent/child window relationship

 protocol/river-window-management-v1.xml | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/protocol/river-window-management-v1.xml b/protocol/river-window-management-v1.xml
index fe6771e..3d443de 100644
--- a/protocol/river-window-management-v1.xml
+++ b/protocol/river-window-management-v1.xml
@@ -196,7 +196,6 @@
       following river_window_manager_v1.commit request.
 
       TODO:
-       - parent
        - set tiled
        - ssd/csd policy
     </description>
@@ -320,6 +319,26 @@
       <arg name="title" type="string"/>
     </event>
 
+    <event name="parent">
+      <description summary="the window set a parent">
+        The window set a parent window. If this event is never received or if
+        the parent argument is null then the window has no parent.
+
+        A surface with a parent set might be a dialog, file picker, or similar
+        for the parent window.
+
+        Child windows should generally be rendered directly above their parent.
+
+        The compositor must guarantee that there are no loops in the window
+        tree: a parent must not be the descendant of one of its children.
+
+        This event is double-buffered state and will be followed by a
+        river_window_manager_v1.update event.
+      </description>
+      <arg name="parent" type="object" allow-null="true"
+        interface="river_window_v1"/>
+    </event>
+
     <enum name="edges" bitfield="true">
       <entry name="none" value="0"/>
       <entry name="top" value="1"/>