diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2022-07-29 09:46:34 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2022-08-05 09:51:54 +1000 |
commit | ad6412624ef6dc4d7548fe16c254c4166ffa7198 (patch) | |
tree | ca8c6ba8ca5740c68a5c5f8454af79c22772dfa7 /include | |
parent | a3f847b75025a57b64967d08a299bc752c488aee (diff) |
Add the XWAYLAND extension
This extension exists to serve one purpose: reliably identifying
Xwayland. Previous attempts at doing so included querying root window
properties, output names or input device names. All these attempts are
somewhat unreliable. Instead, let's use an extension - where that
extension is present we have an Xwayland server.
Clients should never need to do anything but check whether the extension
exists through XQueryExtension/XListExtensions.
This extension provides a single QueryVersion request only, and
that is only to provide future compatibility if we ever need anything
other than "this extension exists" functionality.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/X11/extensions/meson.build | 1 | ||||
-rw-r--r-- | include/X11/extensions/xwaylandproto.h | 63 |
2 files changed, 64 insertions, 0 deletions
diff --git a/include/X11/extensions/meson.build b/include/X11/extensions/meson.build index d1ac281..9c91f22 100644 --- a/include/X11/extensions/meson.build +++ b/include/X11/extensions/meson.build @@ -87,6 +87,7 @@ install_headers( 'XvMC.h', 'XvMCproto.h', 'Xvproto.h', + 'xwaylandproto.h', subdir : 'X11/extensions' ) diff --git a/include/X11/extensions/xwaylandproto.h b/include/X11/extensions/xwaylandproto.h new file mode 100644 index 0000000..49f048d --- /dev/null +++ b/include/X11/extensions/xwaylandproto.h @@ -0,0 +1,63 @@ +/* + * Copyright © 2022 Red Hat, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting documentation, and + * that the name of the copyright holders not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. The copyright holders make no representations + * about the suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _XWAYLAND_PROTO_H_ +#define _XWAYLAND_PROTO_H_ + +#include <X11/Xproto.h> + +#define XWAYLAND_EXTENSION_NAME "XWAYLAND" +#define XWAYLAND_EXTENSION_MAJOR 1 +#define XWAYLAND_EXTENSION_MINOR 0 + +/* Request opcodes */ +#define X_XwlQueryVersion 0 + +#define XwlNumberRequests 1 +#define XwlNumberErrors 0 +#define XwlNumberEvents 0 + +typedef struct { + CARD8 reqType; + CARD8 xwlReqType; + CARD16 length; + CARD16 majorVersion; + CARD16 minorVersion; +} xXwlQueryVersionReq; +#define sz_xXwlQueryVersionReq 8 + +typedef struct { + BYTE type; /* X_Reply */ + BYTE pad1; + CARD16 sequenceNumber; + CARD32 length; + CARD16 majorVersion; + CARD16 minorVersion; + CARD32 pad2; + CARD32 pad3; + CARD32 pad4; + CARD32 pad5; + CARD32 pad6; +} xXwlQueryVersionReply; +#define sz_xXwlQueryVersionReply 32 + +#endif |