aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2019-06-26 18:50:44 +0200
committerUlrich Sibiller <uli42@gmx.de>2019-06-27 20:21:57 +0200
commitd32706888f83b91d6feab93067d1207c507335fa (patch)
tree4dd71ca8aa923c63258f9869d3e6c46e50296290 /nx-X11/programs
parentc190fd1871d00168e2db6df9b91e8bc1ef69fbf5 (diff)
downloadnx-libs-d32706888f83b91d6feab93067d1207c507335fa.tar.gz
nx-libs-d32706888f83b91d6feab93067d1207c507335fa.tar.bz2
nx-libs-d32706888f83b91d6feab93067d1207c507335fa.zip
Screen.c: add nxagentIsParentOf helper
Diffstat (limited to 'nx-X11/programs')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Screen.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index 6ec4b245f..4e466b502 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -297,6 +297,28 @@ void nxagentSetPixmapFormats(ScreenInfo *screenInfo)
}
}
+/* check if possible_parent is parent of candidate */
+Bool nxagentIsParentOf(Display *d, Window possible_parent, Window candidate)
+{
+ Window parent, root, *children = NULL;
+ unsigned int num_children;
+
+ if (XQueryTree(d, candidate, &root, &parent, &children, &num_children))
+ {
+ if (children)
+ XFree((char *)children);
+
+ #ifdef TEST
+ fprintf(stderr, "%s: parent of full screen window [%p] root [%p] possible_parent [%p] candidate [%p]\n", __func__, parent, root, possible_parent, candidate);
+ #endif
+ return (parent == possible_parent);
+ }
+ else
+ {
+ return False;
+ }
+}
+
void nxagentMinimizeFromFullScreen(ScreenPtr pScreen)
{
XUnmapWindow(nxagentDisplay, nxagentFullscreenWindow);