diff options
author | Peter Hutterer <peter.hutterer@redhat.com> | 2008-10-31 18:02:02 +1030 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@redhat.com> | 2008-10-31 18:02:02 +1030 |
commit | f938c524f74fa8828a954bed51d0f3c4c7eb0fad (patch) | |
tree | d462dd884a68ab0114c25b75790566d23b8a6e9b | |
parent | e5c529813b04327babc20e51ca56006210cb0c37 (diff) |
Purge device-based window access code.
Requires inputproto 1.9.99.6.
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | man/Makefile.am | 5 | ||||
-rw-r--r-- | man/XI.xml | 443 | ||||
-rw-r--r-- | src/Makefile.am | 6 | ||||
-rw-r--r-- | src/XAllowDv.c | 84 | ||||
-rw-r--r-- | src/XChAccRl.c | 62 | ||||
-rw-r--r-- | src/XClrAcc.c | 63 | ||||
-rw-r--r-- | src/XDenyDev.c | 69 | ||||
-rw-r--r-- | src/XPermDev.c | 69 | ||||
-rw-r--r-- | src/XQryAccRl.c | 99 |
10 files changed, 1 insertions, 901 deletions
diff --git a/configure.ac b/configure.ac index 0d96acb..fdfab4e 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ AC_PROG_CC AC_PROG_LIBTOOL # Checks for pkg-config packages -PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.1.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 1.9.99.5]) +PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.1.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 1.9.99.6]) AC_SUBST(XI_CFLAGS) AC_SUBST(XI_LIBS) diff --git a/man/Makefile.am b/man/Makefile.am index 153d4dd..91ce945 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -67,13 +67,9 @@ XI_manpages = \ XFreeDeviceList \ XOpenDevice \ XCloseDevice \ - XPermitDevices \ - XDenyDevices \ - XChangeAccessRule \ XQueryDevicePointer \ XQueryInputVersion \ XGetExtensionVersion \ - XQueryWindowAccess \ XSelectExtensionEvent \ XGetSelectedExtensionEvents \ XSetClientPointer \ @@ -83,7 +79,6 @@ XI_manpages = \ XSetDeviceFocus \ XGetDeviceFocus \ XWarpDevicePointer \ - XWindowClearAccess \ XListDeviceProperties \ XGetDeviceProperty \ XChangeDeviceProperty \ @@ -5284,449 +5284,6 @@ </refsect1> </refentry> -<refentry id="XPermitDevices.man"> - <refentryinfo> - <productname>__vendorversion__</productname> - <pubdate>February 14, 2008</pubdate> - <authorgroup> - <author> - <firstname>Peter</firstname><surname>Hutterer</surname> - <contrib>Specification and implementation.</contrib> - </author> - </authorgroup> - </refentryinfo> - - <refmeta> - <refentrytitle>XPermitDevices, XDenyDevices, XChangeAccessRule</refentrytitle> - <manvolnum>__libmansuffix__</manvolnum> - <refmiscinfo class='source'>__xorgversion__</refmiscinfo> - <refmiscinfo class='manual'>XINPUT FUNCTIONS</refmiscinfo> -</refmeta> - <refnamediv> - <refname>XPermitDevices</refname> - <refname>XDenyDevices</refname> - <refname>XChangeAccessRule</refname> - <refpurpose>change access rules to the window.</refpurpose> - </refnamediv> - <refsynopsisdiv> - <title>Syntax</title> - <funcsynopsis> - <funcsynopsisinfo>#include <X11/extensions/XInput.h></funcsynopsisinfo> - <funcprototype> - <funcdef>Status <function>XPermitDevices</function></funcdef> - <paramdef>Display *<parameter>display</parameter></paramdef> - <paramdef>Window <parameter>win</parameter></paramdef> - <paramdef>XID* <parameter>deviceids</parameter></paramdef> - <paramdef>int <parameter>num_devices</parameter></paramdef> - </funcprototype> - <funcprototype> - <funcdef>Status <function>XDenyDevices</function></funcdef> - <paramdef>Display *<parameter>display</parameter></paramdef> - <paramdef>Window <parameter>win</parameter></paramdef> - <paramdef>XID* <parameter>deviceids</parameter></paramdef> - <paramdef>int <parameter>num_devices</parameter></paramdef> - </funcprototype> - <funcprototype> - <funcdef>Status <function>XChangeAccessRule</function></funcdef> - <paramdef>Display *<parameter>display</parameter></paramdef> - <paramdef>Window <parameter>win</parameter></paramdef> - <paramdef>int <parameter>rule</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </refsynopsisdiv> - - <refsect1><title>Arguments</title> - <para> - <variablelist> - <varlistentry> - <term><parameter>deviceids</parameter></term> - <listitem><para>Specifies a list of device IDs to - deny/restrict access. - </para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>display</parameter></term> - <listitem><para>Specifies the connection to the X server. - </para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>num_devices</parameter></term> - <listitem><para>Specifies the number of elements in - <parameter>deviceids</parameter>. - </para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>rule</parameter></term> - <listitem> - <para>Specifies the default access rule for - <parameter>win</parameter>. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>win</parameter></term> - <listitem> - <para> - Specifies the window. - </para> - </listitem> - </varlistentry> - </variablelist> - </para> - </refsect1> - - <refsect1><title>Description</title> - <para> - Each window features an Access Control List (ACL) to permit or deny - devices from sending events from this window. This is intended to - be used to restrict devices from accessing certain UI elements - in a multi-user environment. It is not to be used as a security - feature. - </para> - <para> - Access rules work hierarchically and if any parent window has an - access rule defined, it applies to all child windows unless - overridden in the child window. - </para> - <para> - Each window's default rule determines the default access mode. If - the default rule is <constant>WindowAccessDenyAll</constant>, no - device can send events to this window. If the default rule is - <constant>WindowAccessNoRule</constant>, any device can access the - window, unless a parent has - <constant>WindowAccessDenyAll</constant> set. If the default rule - is <constant>WindowAccessAllowAll</constant>, any device can - access the window. - </para> - <para> - If a device is specified in the window's deny list, it is denied - access to this window, regardless of the access rule. - If a device is specified in the window's perm list, this - device is allowed to access this window regardless of the parent - window's settings, the deny list, and the default rule. - </para> - <para> - <function>XPermitDevices</function> and - <function>XDenyDevices</function> set the window's perm list - or deny list to the devices specified in - <parameter>deviceids</parameter>. Any previous setting is - overwritten. - </para> - <para> - <function>XPermitDevices</function> and - <function>XDenyDevices</function> can generate a - <errorname>BadDevice</errorname> and a - <errorname>BadWindow</errorname> error. - </para> - <para> - <function>XChangeAccessRule</function> sets the default acess rule - for <parameter>window</parameter>. If <parameter>rule</parameter> - is <constant>WindowAccessDenyAll</constant>, all devices are - denied access to this window. If <parameter>rule</parameter> is - <constant>WindowAccessAllowAll</constant>, all devices are - permitted access to this window. Otherwise, if - <constant>WindowAccessNoRule</constant> is given, the default rule - is reset and all devices are able to send events to the window - unless a parent window restricts access. - </para> - <para> - <function>XChangeAccessRule</function> can generate a - <errorname>BadDevice</errorname> and a - <errorname>BadValue</errorname> error. - </para> - </refsect1> - - <refsect1><title>Diagnosis</title> - <para> - <variablelist> - <varlistentry> - <term><errorname>BadDevice</errorname></term> - <listitem><para>An invalid device was specified. The - device does not exist. -</para></listitem> - - </varlistentry> - <varlistentry> - <term><errorname>BadWindow</errorname></term> - <listitem><para>A value for a Window argument does not - name a defined window. -</para></listitem> - </varlistentry> - <varlistentry> - <term><errorname>BadValue</errorname></term> - <listitem><para>Some numeric value falls out of the - allowed range. -</para></listitem> - </varlistentry> - </variablelist> - </para> - </refsect1> - <refsect1><title>See also</title> - <para> - <function>XWindowClearAccess</function>, - <function>XQueryWindowAccess</function> - </para> - </refsect1> -</refentry> - -<refentry id="XWindowClearAccess.man"> - <refentryinfo> - <productname>__vendorversion__</productname> - <pubdate>February 14, 2008</pubdate> - <authorgroup> - <author> - <firstname>Peter</firstname><surname>Hutterer</surname> - <contrib>Specification and implementation.</contrib> - </author> - </authorgroup> - </refentryinfo> - - <refmeta> - <refentrytitle>XWindowClearAccess</refentrytitle> - <manvolnum>__libmansuffix__</manvolnum> - <refmiscinfo class='source'>__xorgversion__</refmiscinfo> - <refmiscinfo class='manual'>XINPUT FUNCTIONS</refmiscinfo> -</refmeta> - <refnamediv> - <refname>XWindowClearAccess</refname> - <refpurpose>remove access rules for the window.</refpurpose> - </refnamediv> - <refsynopsisdiv> - <title>Syntax</title> - <funcsynopsis> - <funcsynopsisinfo>#include <X11/extensions/XInput.h></funcsynopsisinfo> - <funcprototype> - <funcdef>Status <function>XWindowClearAccess</function></funcdef> - <paramdef>Display *<parameter>display</parameter></paramdef> - <paramdef>Window <parameter>win</parameter></paramdef> - <paramdef>int <parameter>what</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </refsynopsisdiv> - - <refsect1><title>Arguments</title> - <para> - <variablelist> - <varlistentry> - <term><parameter>display</parameter></term> - <listitem><para>Specifies the connection to the X server. -</para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>what</parameter></term> - <listitem><para>Specifies the access restrictions to - remove. -</para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>win</parameter></term> - <listitem> - <para> - Specifies the window. - </para> - </listitem> - </varlistentry> - </variablelist> - </para> - </refsect1> - - <refsect1><title>Description</title> - <para> - <function>XWindowClearAccess</function> removes an access control - restriction from <parameter>window</parameter>. The bitmask - <parameter>what</parameter> defines which restrictions to remove. - </para> - <para> - If <constant>WindowAccessClearPerm</constant> is set, the - perm list of <parameter>win</parameter> is removed. If - <constant>WindowAccessClearDeny</constant> is set, the deny list - of <parameter>win</parameter> is removed. If - <constant>WindowAccessClearRule</constant> is set, the default - rule of the window is set to - <constant>WindowAccessNoRule</constant>. If - <parameter>what</parameter> is equal to - <constant>WindowAccessClearAll</constant>, the window is reset to - the neutral state (neither explicitly permitting nor denying - access). - </para> - <para> - <function>XWindowClearAccess</function> can generate a - <errorname>BadValue</errorname> and a - <errorname>BadWindow</errorname> error. - </para> - </refsect1> - - <refsect1><title>Diagnosis</title> - <para> - <variablelist> - <varlistentry> - <term><errorname>BadValue</errorname></term> - <listitem><para>A value is outside of the permitted range. -</para></listitem> - - </varlistentry> - <varlistentry> - <term><errorname>BadWindow</errorname></term> - <listitem><para>A value for a Window argument does not - name a defined window. -</para></listitem> - </varlistentry> - </variablelist> - </para> - </refsect1> - <refsect1><title>See also</title> - <para> - <function>XPermitDevices</function>, - <function>XDenyDevices</function>, - <function>XChangeAccessRule</function>, - <function>XQueryWindowAccess</function> - </para> - </refsect1> -</refentry> - -<refentry id="XQueryWindowAccess.man"> - <refentryinfo> - <productname>__vendorversion__</productname> - <pubdate>February 14, 2008</pubdate> - <authorgroup> - <author> - <firstname>Peter</firstname><surname>Hutterer</surname> - <contrib>Specification and implementation.</contrib> - </author> - </authorgroup> - </refentryinfo> - - <refmeta> - <refentrytitle>XQueryWindowAccess</refentrytitle> - <manvolnum>__libmansuffix__</manvolnum> - <refmiscinfo class='source'>__xorgversion__</refmiscinfo> - <refmiscinfo class='manual'>XINPUT FUNCTIONS</refmiscinfo> -</refmeta> - <refnamediv> - <refname>XQueryWindowAccess</refname> - <refpurpose>query access rules of the window.</refpurpose> - </refnamediv> - <refsynopsisdiv> - <title>Syntax</title> - <funcsynopsis> - <funcsynopsisinfo>#include <X11/extensions/XInput.h></funcsynopsisinfo> - <funcprototype> - <funcdef>Status <function>XQueryWindowAccess</function></funcdef> - <paramdef>Display *<parameter>display</parameter></paramdef> - <paramdef>Window <parameter>win</parameter></paramdef> - <paramdef>int *<parameter>rule_return</parameter></paramdef> - <paramdef>XID **<parameter>permdevices_return</parameter></paramdef> - <paramdef>int *<parameter>nperm_return</parameter></paramdef> - <paramdef>XID **<parameter>denydevices_return</parameter></paramdef> - <paramdef>int *<parameter>ndeny_return</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </refsynopsisdiv> - - <refsect1><title>Arguments</title> - <para> - <variablelist> - <varlistentry> - <term><parameter>display</parameter></term> - <listitem><para>Specifies the connection to the X server. -</para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>rule_return</parameter></term> - <listitem><para>The default rule of the window. -</para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>permdevices_return</parameter></term> - <listitem><para>List of devices explicitly allowed to access the - window. -</para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>denydevices_return</parameter></term> - <listitem><para>List of devices explicitly denied access the - window. -</para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>nperm_return</parameter></term> - <listitem><para>Number of elements in - <parameter>permdevices_return</parameter>. -</para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>ndeny_return</parameter></term> - <listitem><para>Number of elements in - <parameter>denydevices_return</parameter>. -</para></listitem> - </varlistentry> - <varlistentry> - <term><parameter>win</parameter></term> - <listitem> - <para> - Specifies the window. - </para> - </listitem> - </varlistentry> - </variablelist> - </para> - </refsect1> - - <refsect1><title>Description</title> - <para> - <function>XQueryWindowAccess</function> queries - <parameter>win</parameter> for its current access control - restriction settings. - </para> - <para> - The value of <parameter>rule_return</parameter> can be either - <constant>WindowAccessNoRule</constant> or - <constant>WindowAccessDenyAll</constant>. - </para> - <para> - If <parameter>nperm_return</parameter> is non-zero, - <parameter>permdevices_return</parameter> points to a list of - device IDs that are permitted access to the window. - </para> - <para> - If <parameter>ndeny_return</parameter> is non-zero, - <parameter>denydevices_return</parameter> points to a list of - device IDs that are denied access to the window. - </para> - <para> - It is the caller's responsibility to free the memory returned in - <parameter>permdevices_return</parameter> and - <parameter>denydevices_return</parameter>. - </para> - <para> - <function>XQueryWindowAccess</function> can generate a - <errorname>BadWindow</errorname> error. - </para> - </refsect1> - - <refsect1><title>Diagnosis</title> - <para> - <variablelist> - <varlistentry> - <term><errorname>BadWindow</errorname></term> - <listitem><para>A value for a Window argument does not - name a defined window. -</para></listitem> - </varlistentry> - </variablelist> - </para> - </refsect1> - <refsect1><title>See also</title> - <para> - <function>XPermitDevices</function>, - <function>XDenyDevices</function>, - <function>XChangeAccessRule</function>, - <function>XWindowClearAcess</function> - </para> - </refsect1> -</refentry> - <refentry id="XiSelectEvent.man"> <refentryinfo> <productname>__vendorversion__</productname> diff --git a/src/Makefile.am b/src/Makefile.am index df7d375..0d6071c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -3,8 +3,6 @@ lib_LTLIBRARIES = libXi.la libXi_la_SOURCES = \ - XAllowDv.c \ - XChAccRl.c \ XChDevHier.c \ XChDProp.c \ XChgDCtl.c \ @@ -13,11 +11,9 @@ libXi_la_SOURCES = \ XChgKMap.c \ XChgPnt.c \ XChgProp.c \ - XClrAcc.c \ XCloseDev.c \ XDefDevCur.c \ XDelDProp.c \ - XDenyDev.c \ XDevBell.c \ XExtGrabDev.c \ XExtToWire.c \ @@ -39,8 +35,6 @@ libXi_la_SOURCES = \ XListDev.c \ XListDProp.c \ XOpenDev.c \ - XPermDev.c \ - XQryAccRl.c \ XQueryDv.c \ XQueryDvPtr.c \ XSelect.c \ diff --git a/src/XAllowDv.c b/src/XAllowDv.c deleted file mode 100644 index d19443d..0000000 --- a/src/XAllowDv.c +++ /dev/null @@ -1,84 +0,0 @@ -/************************************************************ - -Copyright 1989, 1998 The Open Group - -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. - -The above copyright notice and this permission notice 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 -OPEN GROUP 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. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -Copyright 1989 by Hewlett-Packard Company, Palo Alto, California. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -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 Hewlett-Packard not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -HEWLETT-PACKARD 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. - -********************************************************/ - -/*********************************************************************** - * - * XAllowDeviceEvents - Thaw a frozen extension device. - * - */ - -#include <X11/extensions/XI.h> -#include <X11/extensions/XIproto.h> -#include <X11/Xlibint.h> -#include <X11/extensions/XInput.h> -#include <X11/extensions/extutil.h> -#include "XIint.h" - -int -XAllowDeviceEvents( - register Display *dpy, - XDevice *dev, - int event_mode, - Time time) -{ - xAllowDeviceEventsReq *req; - XExtDisplayInfo *info = XInput_find_display(dpy); - - LockDisplay(dpy); - if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return (NoSuchExtension); - - GetReq(AllowDeviceEvents, req); - req->reqType = info->codes->major_opcode; - req->ReqType = X_AllowDeviceEvents; - req->deviceid = dev->device_id; - req->mode = event_mode; - req->time = time; - - UnlockDisplay(dpy); - SyncHandle(); - return (Success); -} diff --git a/src/XChAccRl.c b/src/XChAccRl.c deleted file mode 100644 index bd57e3f..0000000 --- a/src/XChAccRl.c +++ /dev/null @@ -1,62 +0,0 @@ -/************************************************************ - -Copyright 2007 Peter Hutterer <peter@cs.unisa.edu.au> - -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. - -The above copyright notice and this permission notice 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 -OPEN GROUP 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. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ - -/*********************************************************************** - * - * XChangeAccessRule - Change default rule for a window. - * - */ - -#include <X11/extensions/XI.h> -#include <X11/extensions/XIproto.h> -#include <X11/Xlibint.h> -#include <X11/extensions/XInput.h> -#include <X11/extensions/extutil.h> -#include "XIint.h" - -Status -XChangeAccessRule(Display* dpy, Window win, int rule) -{ - xChangeWindowAccessReq* req; - XExtDisplayInfo *info = XInput_find_display(dpy); - - LockDisplay(dpy); - if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return (NoSuchExtension); - - GetReq(ChangeWindowAccess, req); - req->reqType = info->codes->major_opcode; - req->ReqType = X_ChangeWindowAccess; - req->win = win; - req->clear = WindowAccessClearNone; - req->defaultRule = rule; - req->ndeny = 0; - req->npermit = 0; - - UnlockDisplay(dpy); - SyncHandle(); - return Success; -} diff --git a/src/XClrAcc.c b/src/XClrAcc.c deleted file mode 100644 index a0f028f..0000000 --- a/src/XClrAcc.c +++ /dev/null @@ -1,63 +0,0 @@ -/************************************************************ - -Copyright 2007 Peter Hutterer <peter@cs.unisa.edu.au> - -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. - -The above copyright notice and this permission notice 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 -OPEN GROUP 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. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ - -/*********************************************************************** - * - * XWindowClearAccess - Clear the access restrictions of a window. - * - */ - -#include <X11/extensions/XI.h> -#include <X11/extensions/XIproto.h> -#include <X11/Xlibint.h> -#include <X11/extensions/XInput.h> -#include <X11/extensions/extutil.h> -#include "XIint.h" - -Status -XWindowClearAccess(Display* dpy, Window win, int what) -{ - xChangeWindowAccessReq* req; - - XExtDisplayInfo *info = XInput_find_display(dpy); - - LockDisplay(dpy); - if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return (NoSuchExtension); - - GetReq(ChangeWindowAccess, req); - req->reqType = info->codes->major_opcode; - req->ReqType = X_ChangeWindowAccess; - req->win = win; - req->clear = what; - req->defaultRule = WindowAccessKeepRule; - req->ndeny = 0; - req->npermit = 0; - - UnlockDisplay(dpy); - SyncHandle(); - return Success; -} diff --git a/src/XDenyDev.c b/src/XDenyDev.c deleted file mode 100644 index 686ef12..0000000 --- a/src/XDenyDev.c +++ /dev/null @@ -1,69 +0,0 @@ -/************************************************************ - -Copyright 2007 Peter Hutterer <peter@cs.unisa.edu.au> - -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. - -The above copyright notice and this permission notice 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 -OPEN GROUP 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. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ - -/*********************************************************************** - * - * XDenyDevices - Change list of devices denied to access a window. - * - */ - -#include <X11/extensions/XI.h> -#include <X11/extensions/XIproto.h> -#include <X11/Xlibint.h> -#include <X11/extensions/XInput.h> -#include <X11/extensions/extutil.h> -#include "XIint.h" - -Status -XDenyDevices(Display* dpy, Window win, XID* devices, int count) -{ - xChangeWindowAccessReq* req; - - XExtDisplayInfo *info = XInput_find_display(dpy); - - LockDisplay(dpy); - if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return (NoSuchExtension); - - GetReq(ChangeWindowAccess, req); - req->reqType = info->codes->major_opcode; - req->ReqType = X_ChangeWindowAccess; - req->win = win; - /* If list is empty, clear all devices */ - if (!count) - req->clear = WindowAccessClearDeny; - else - req->clear = WindowAccessClearNone; - req->defaultRule = WindowAccessKeepRule; - req->ndeny = count; - req->length += (count * sizeof(XID) + 3) >> 2; - req->npermit = 0; - Data(dpy, (char*)devices, count * sizeof(XID)); - - UnlockDisplay(dpy); - SyncHandle(); - return Success; -} diff --git a/src/XPermDev.c b/src/XPermDev.c deleted file mode 100644 index 1e5cd1e..0000000 --- a/src/XPermDev.c +++ /dev/null @@ -1,69 +0,0 @@ -/************************************************************ - -Copyright 2007 Peter Hutterer <peter@cs.unisa.edu.au> - -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. - -The above copyright notice and this permission notice 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 -OPEN GROUP 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. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ - -/*********************************************************************** - * - * XPermitDevices - Change list of devices allowed to access a window. - * - */ - -#include <X11/extensions/XI.h> -#include <X11/extensions/XIproto.h> -#include <X11/Xlibint.h> -#include <X11/extensions/XInput.h> -#include <X11/extensions/extutil.h> -#include "XIint.h" - -Status -XPermitDevices(Display* dpy, Window win, XID* devices, int count) -{ - xChangeWindowAccessReq* req; - - XExtDisplayInfo *info = XInput_find_display(dpy); - - LockDisplay(dpy); - if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return (NoSuchExtension); - - GetReq(ChangeWindowAccess, req); - req->reqType = info->codes->major_opcode; - req->ReqType = X_ChangeWindowAccess; - req->win = win; - /* If list is empty, clear all devices */ - if (! count) - req->clear = WindowAccessClearPerm; - else - req->clear = WindowAccessClearNone; - req->defaultRule = WindowAccessKeepRule; - req->npermit = count; - req->length += (count * sizeof(XID) + 3) >> 2; - req->ndeny = 0; - Data(dpy, (char*)devices, count * sizeof(XID)); - - UnlockDisplay(dpy); - SyncHandle(); - return Success; -} diff --git a/src/XQryAccRl.c b/src/XQryAccRl.c deleted file mode 100644 index 20dddc7..0000000 --- a/src/XQryAccRl.c +++ /dev/null @@ -1,99 +0,0 @@ -/************************************************************ - -Copyright 2007 Peter Hutterer <peter@cs.unisa.edu.au> - -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. - -The above copyright notice and this permission notice 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 -OPEN GROUP 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. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ - -/*********************************************************************** - * - * XQueryAccess - Query access restrictions on given window. - * - */ - -#include <X11/extensions/XI.h> -#include <X11/extensions/XIproto.h> -#include <X11/Xlibint.h> -#include <X11/extensions/XInput.h> -#include <X11/extensions/extutil.h> -#include "XIint.h" - -Status -XQueryWindowAccess(Display* dpy, - Window win, - int* rule, - XID** permdevs, - int* nperm, - XID** denydevs, - int* ndeny) -{ - xQueryWindowAccessReq* req; - xQueryWindowAccessReply rep; - - XExtDisplayInfo *info = XInput_find_display(dpy); - - LockDisplay(dpy); - if (_XiCheckExtInit(dpy, XInput_Initial_Release, info) == -1) - return (NoSuchExtension); - - GetReq(QueryWindowAccess, req); - req->reqType = info->codes->major_opcode; - req->ReqType = X_QueryWindowAccess; - req->win = win; - - if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - return BadImplementation; - } - - *rule = rep.defaultRule; - *nperm = rep.npermit; - *ndeny = rep.ndeny; - *permdevs = (XID *)Xmalloc(*nperm * sizeof(XID)); - if (!*permdevs) - { - _XEatData(dpy, (unsigned long)rep.length << 2); - UnlockDisplay(dpy); - SyncHandle(); - return BadImplementation; - } - - *denydevs = (XID*)Xmalloc(*ndeny * sizeof(XID)); - if (!*denydevs) - { - _XEatData(dpy, (unsigned long)rep.length << 2); - UnlockDisplay(dpy); - SyncHandle(); - return BadImplementation; - } - _XRead(dpy, (char*)*permdevs, *nperm * sizeof(XID)); - _XRead(dpy, (char*)*denydevs, *ndeny * sizeof(XID)); - - /* discard padding */ - _XEatData(dpy, (rep.length << 2) - (*ndeny * sizeof(XID)) - (*nperm * sizeof(XID))); - - UnlockDisplay(dpy); - SyncHandle(); - return Success; - -} |