diff options
author | Joel Bosveld <Joel.Bosveld@gmail.com> | 2009-08-07 11:26:14 +0800 |
---|---|---|
committer | Joel Bosveld <Joel.Bosveld@gmail.com> | 2009-08-07 11:26:14 +0800 |
commit | 3849642c709943cb48dd1d603bc34ca1687fc6ca (patch) | |
tree | 89200554d11af9be91f424e19ae0974c190976a8 | |
parent | 4e6e45f6ab107d63a6eb89033cb05f4ef4a12cf5 (diff) |
-rw-r--r-- | include/X11/extensions/Xcomposite.h | 4 | ||||
-rw-r--r-- | src/Xcomposite.c | 27 |
2 files changed, 31 insertions, 0 deletions
diff --git a/include/X11/extensions/Xcomposite.h b/include/X11/extensions/Xcomposite.h index 97cc4d6..0d121ba 100644 --- a/include/X11/extensions/Xcomposite.h +++ b/include/X11/extensions/Xcomposite.h @@ -105,6 +105,10 @@ XCompositeRedirectWindowInput (Display *dpy, Window window, Window destination); +Window +XCompositeGetDestinationWindow (Display *dpy, + Window window); + _XFUNCPROTOEND #endif /* _XCOMPOSITE_H_ */ diff --git a/src/Xcomposite.c b/src/Xcomposite.c index d3bf92c..e82e1e3 100644 --- a/src/Xcomposite.c +++ b/src/Xcomposite.c @@ -485,3 +485,30 @@ XCompositeRedirectWindowInput (Display *dpy, UnlockDisplay (dpy); SyncHandle (); } + +Window +XCompositeGetDestinationWindow (Display *dpy, + Window window) +{ + XCompositeExtDisplayInfo *info = XCompositeFindDisplay (dpy); + xCompositeGetInputRedirectionInfoReq *req; + xCompositeGetInputRedirectionInfoReply rep; + + XCompositeCheckExtension (dpy, info, 0); + LockDisplay (dpy); + GetReq (CompositeGetInputRedirectionInfo, req); + req->reqType = info->codes->major_opcode; + req->compositeReqType = X_CompositeGetInputRedirectionInfo; + req->window = window; + if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) + { + UnlockDisplay (dpy); + SyncHandle (); + return 0; + } + + UnlockDisplay (dpy); + SyncHandle (); + + return rep.destination; +} |