diff options
-rw-r--r-- | .gitignore | 78 | ||||
-rw-r--r-- | COPYING | 20 | ||||
-rw-r--r-- | Makefile.am | 21 | ||||
-rw-r--r-- | README | 44 | ||||
-rw-r--r-- | Xeviestr.h | 3 | ||||
-rwxr-xr-x | autogen.sh | 14 | ||||
-rw-r--r-- | configure.ac | 19 | ||||
-rw-r--r-- | evieproto.h | 156 | ||||
-rw-r--r-- | evieproto.pc.in | 9 |
9 files changed, 364 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..24f0fd9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,78 @@ +# +# X.Org module default exclusion patterns +# The next section if for module specific patterns +# +# Do not edit the following section +# GNU Build System (Autotools) +aclocal.m4 +autom4te.cache/ +autoscan.log +ChangeLog +compile +config.guess +config.h +config.h.in +config.log +config-ml.in +config.py +config.status +config.status.lineno +config.sub +configure +configure.scan +depcomp +.deps/ +INSTALL +install-sh +.libs/ +libtool +libtool.m4 +ltmain.sh +lt~obsolete.m4 +ltoptions.m4 +ltsugar.m4 +ltversion.m4 +Makefile +Makefile.in +mdate-sh +missing +mkinstalldirs +*.pc +py-compile +stamp-h? +symlink-tree +texinfo.tex +ylwrap + +# Do not edit the following section +# Edit Compile Debug Document Distribute +*~ +*.[0-9] +*.[0-9]x +*.bak +*.bin +core +*.dll +*.exe +*-ISO*.bdf +*-JIS*.bdf +*-KOI8*.bdf +*.kld +*.ko +*.ko.cmd +*.lai +*.l[oa] +*.[oa] +*.obj +*.patch +*.so +*.pcf.gz +*.pdb +*.tar.bz2 +*.tar.gz +# +# Add & Override patterns for evieproto +# +# Edit the following section as needed +# For example, !report.pc overrides *.pc. See 'man gitignore' +# @@ -0,0 +1,20 @@ +Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..6de80c3 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,21 @@ +eviedir = $(includedir)/X11/extensions +evie_HEADERS = \ + evieproto.h \ + Xeviestr.h + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = evieproto.pc + +EXTRA_DIST = evieproto.pc.in + +MAINTAINERCLEANFILES = ChangeLog INSTALL + +.PHONY: ChangeLog INSTALL + +INSTALL: + $(INSTALL_CMD) + +ChangeLog: + $(CHANGELOG_CMD) + +dist-hook: ChangeLog INSTALL @@ -0,0 +1,44 @@ +XEvIE - X Event Interception Extension + +Extension name: XEVIE + +XEvIE is a X extension providing functionalities to allow a client to +intercept keyboard/mouse events, and optionally modify them or consume +them before delivery through the normal event delivery mechanisms. + +It was included in X11R6.8 through Xorg server 1.5, but is no +longer supported in current X server releases (and didn't actually +work in the last releases that did include it, nor was it ever enabled +by default in the releases made by X.Org, though some distros may have +enabled it in their builds/packages). + +No formal specification of the protocol was ever written, but it can +be mostly determined from the evieproto.h header and the libXevie +documentation of the functions that directly map to the protocol requests. + +A version 1.1 was proposed to solve several issues around security and +multi-client access, but never implemented. + +All questions regarding this software should be directed at the +Xorg mailing list: + + http://lists.freedesktop.org/mailman/listinfo/xorg + +Please submit bug reports to the Xorg bugzilla: + + https://bugs.freedesktop.org/enter_bug.cgi?product=xorg + +The master development code repository can be found at: + + git://anongit.freedesktop.org/git/xorg/proto/evieproto + + http://cgit.freedesktop.org/xorg/proto/evieproto + +For patch submission instructions, see: + + http://www.x.org/wiki/Development/Documentation/SubmittingPatches + +For more information on the git code manager, see: + + http://wiki.x.org/wiki/GitPage + diff --git a/Xeviestr.h b/Xeviestr.h new file mode 100644 index 0000000..78871f1 --- /dev/null +++ b/Xeviestr.h @@ -0,0 +1,3 @@ +#warning "Xeviestr.h is obsolete and may be removed in the future." +#warning "include <X11/extensions/evieproto.h> for the protocol defines." +#include <X11/extensions/evieproto.h> diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..fc34bd5 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,14 @@ +#! /bin/sh + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd $srcdir + +autoreconf -v --install || exit 1 +cd $ORIGDIR || exit $? + +if test -z "$NOCONFIGURE"; then + $srcdir/configure "$@" +fi diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..a5f48b1 --- /dev/null +++ b/configure.ac @@ -0,0 +1,19 @@ +dnl +dnl Process this file with autoconf to create configure. + +# Initialize Autoconf +AC_PREREQ([2.60]) +AC_INIT([EvIEExt], [1.1.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AC_CONFIG_SRCDIR([Makefile.am]) + +# Initialize Automake +AM_INIT_AUTOMAKE([foreign dist-bzip2]) + +# Require xorg-macros: XORG_DEFAULT_OPTIONS +m4_ifndef([XORG_MACROS_VERSION], + [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])]) +XORG_MACROS_VERSION(1.3) +XORG_DEFAULT_OPTIONS + +AC_OUTPUT([Makefile + evieproto.pc]) diff --git a/evieproto.h b/evieproto.h new file mode 100644 index 0000000..649c91a --- /dev/null +++ b/evieproto.h @@ -0,0 +1,156 @@ +/************************************************************ + +Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +************************************************************/ + +#ifndef _XEVIEPROTO_H_ +#define _XEVIEPROTO_H_ + +#define XEVIENAME "XEVIE" + +#define XEVIE_MAJOR_VERSION 1 +#define XEVIE_MINOR_VERSION 0 + +#define X_XevieQueryVersion 0 +#define X_XevieStart 1 +#define X_XevieEnd 2 +#define X_XevieSend 3 +#define X_XevieSelectInput 4 + +#define XevieNumberErrors 0 + +typedef struct _XevieQueryVersion { + CARD8 reqType; + CARD8 xevieReqType; + CARD16 length B16; + CARD16 client_major_version B16; + CARD16 client_minor_version B16; +} xXevieQueryVersionReq; +#define sz_xXevieQueryVersionReq 8 + +typedef struct { + BYTE type; + BOOL pad1; + CARD16 sequence_number B16; + CARD32 length B32; + CARD16 server_major_version B16; + CARD16 server_minor_version B16; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; +} xXevieQueryVersionReply; +#define sz_xXevieQueryVersionReply 32 + +typedef struct _XevieStart { + CARD8 reqType; + CARD8 xevieReqType; + CARD16 length B16; + CARD32 screen B32; +} xXevieStartReq; +#define sz_xXevieStartReq 8 + +typedef struct { + BYTE type; + BOOL pad1; + CARD16 sequence_number B16; + CARD32 length B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; + CARD32 pad7 B32; +} xXevieStartReply; +#define sz_xXevieStartReply 32 + +typedef struct _XevieEnd { + CARD8 reqType; + CARD8 xevieReqType; + CARD16 length B16; + CARD32 cmap B32; +} xXevieEndReq; +#define sz_xXevieEndReq 8 + +typedef struct { + BYTE type; /* X_Reply */ + BOOL pad1; + CARD16 sequence_number B16; + CARD32 length B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; + CARD32 pad7 B32; +} xXevieEndReply; +#define sz_xXevieEndReply 32 + +typedef struct _XevieSend { + CARD8 reqType; + CARD8 xevieReqType; + CARD16 length B16; + xEvent event; + CARD32 dataType B32; +} xXevieSendReq; +#define sz_xXevieSendReq 104 + +typedef struct { + BYTE type; + BOOL pad1; + CARD16 sequence_number B16; + CARD32 length B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; + CARD32 pad7 B32; +} xXevieSendReply; +#define sz_xXevieSendReply 32 + +typedef struct _XevieSelectInput { + CARD8 reqType; + CARD8 xevieReqType; + CARD16 length B16; + CARD32 event_mask B32; +} xXevieSelectInputReq; +#define sz_xXevieSelectInputReq 8 + +typedef struct { + BYTE type; + BOOL pad1; + CARD16 sequence_number B16; + CARD32 length B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; + CARD32 pad7 B32; +} xXevieSelectInputReply; +#define sz_xXevieSelectInputReply 32 + +#endif /* } _XEVIEPROTO_H_ */ + diff --git a/evieproto.pc.in b/evieproto.pc.in new file mode 100644 index 0000000..8585655 --- /dev/null +++ b/evieproto.pc.in @@ -0,0 +1,9 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: EvIEExt +Description: EvIE extension headers +Version: @PACKAGE_VERSION@ +Cflags: -I${includedir} |