From bb632281d02879018e141e7d9325afb805ed0f0d Mon Sep 17 00:00:00 2001 From: Jonas Ådahl Date: Wed, 10 May 2017 13:40:52 +0800 Subject: xdg-shell/toplevel: Chain multiple parent-child relationships MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change the semantics of xdg_toplevel.set_parent to allow chaining multiple parent-child relationships together, while allowing arbitrarily unmapping parents, while keeping what is left over of the chain intact. This makes things easier to manage when parent-child relationships cross client borders, for example when using xdg_foreign. Signed-off-by: Jonas Ådahl Signed-off-by: Mike Blumenkrantz --- stable/xdg-shell/xdg-shell.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'stable') diff --git a/stable/xdg-shell/xdg-shell.xml b/stable/xdg-shell/xdg-shell.xml index b119cff..4c4c66b 100644 --- a/stable/xdg-shell/xdg-shell.xml +++ b/stable/xdg-shell/xdg-shell.xml @@ -540,9 +540,8 @@ - Set the "parent" of this surface. This window should be stacked - above a parent. The parent surface must be mapped as long as this - surface is mapped. + Set the "parent" of this surface. This surface should be stacked + this above the parent surface and all other ancestor surfaces. Parent windows should be set on dialogs, toolboxes, or other "auxiliary" surfaces, so that the parent is raised when the dialog @@ -551,6 +550,12 @@ Setting a null parent for a child window removes any parent-child relationship for the child. Setting a null parent for a window which currently has no parent is a no-op. + + If the parent is unmapped then its children are managed as + though the parent of the now-unmapped parent has become the + parent of this surface. If no parent exists for the now-unmapped + parent then the children are managed as though they have no + parent surface. -- cgit v1.2.3