Update to libXi 1.6.1

This commit is contained in:
matthieu 2012-06-11 19:24:48 +00:00
parent 55a68ef814
commit 2bd9f468fa
89 changed files with 12476 additions and 2501 deletions

View File

@ -1,34 +1,265 @@
commit d58150cf5cf11c0449fc9e9f3c7fc4d29764f6e5
commit ae163b6202d844a46541928d00049b29cbdf930f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Dec 20 10:18:28 2011 +1000
Date: Thu May 3 16:01:35 2012 +1000
libXi 1.4.5
libXi 1.6.1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 7a30bc136fb6c1561f5cd91606bca01fb877f167
commit fd5e000308925f703ecd15c288127ab33a456425
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Aug 12 14:24:26 2011 +1000
Date: Mon Apr 23 13:32:59 2012 +1000
Don't use the protocol defines for 2.0 versioning.
man: update XIQueryVersion for current server behaviour
Otherwise we run into the old problem again: recompiling libXi against
newer inputproto headers will appear to change the version support,
potentially causing errors or other misbehaviours.
XIQueryVersion(v1);
XIQueryVersion(v2);
is now ok as long as v1 <= v2.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit ca73cd3b7630e7eb7d26c61c4af10d35dbce5465)
commit e423bfa6045a2b2eeb02080ae39dbee44e062bfa
commit f8f44f42eb543ecd944a84facba6c09bf48e7711
Author: Chase Douglas <chase.douglas@canonical.com>
Date: Fri Apr 20 15:30:30 2012 -0700
Destroy extension record after last display is removed
The extension record is currently leaked and never freed.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 2ac185d2fd2b884f4f59a7f7f61f414d139859aa
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Dec 16 07:43:45 2011 +1000
Date: Mon Mar 26 09:07:34 2012 +1000
libXi 1.4.4
Set the RawEvent sourceid (#34240)
XI 2.2 and later include the sourceid in raw events.
X.Org Bug 34240 <http://bugs.freedesktop.org/show_bug.cgi?id=34240>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
commit dfc101e4c6cdac4ff9a51732b2754287fbdc8582
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Mar 26 09:05:24 2012 +1000
Move version comparison into a helper function.
No functional changes, this simply introduces a version helper function that
returns -1, 0 or 1 depending on the version comparison result. To be used
internally only.
Needed for fix to #34240
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
commit 8436c920953f288aea2d6d5f370f8eaaaef82d97
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Mar 15 11:51:41 2012 +1000
Fix wrong button label and mask copy on OS X
Regression introduced in c1a5a70b51f12dedf354102217c7cd4247ed3a4b.
If double-padding is applied, the length of the mask on the wire may be
smaller than libXi's mask_len. When copying, only the wire length must be
copied, with the remainder set to 0.
When advancing to the button labels, the wire length matters, not libXi's
internal length.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Tested-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 70b730b0548ca9e408f14f2576b972beb32a0ad0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Mar 8 16:03:50 2012 +1000
libXi 1.6.0
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 30bff38c7436daad4140fedf867c546bea839b93
commit 1b9f0394c3d4d3833f8560ae8170a4d5842419ab
Author: Chase Douglas <chase.douglas@canonical.com>
Date: Wed Mar 7 14:52:54 2012 -0800
Fix XIScrollClass increment value on 32-bit machines
This fixes scroll class increment values on 32-bit machines. Performing
1UL << 32 shifts the bit off the end of a 32-bit unsigned long value. By
expanding to 1ULL, we have the full 64-bits of an unsigned long long
including on 32-bit machines.
Before this change, xinput list --long would output scroll increment
values of -nan.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit c1a5a70b51f12dedf354102217c7cd4247ed3a4b
Author: Michał Masłowski <mtjm@mtjm.eu>
Date: Tue Feb 21 20:54:40 2012 +0100
Fix bus error on MIPS N32 for bug #38331.
XIValuatorClassInfo and XIScrollClassInfo might have an address
of 4 bytes modulo 8, while they contain doubles which need 8 byte
alignment. This is fixed by adding extra padding after each structure
or array in sizeDeviceClassType and adding helper functions to
determine sizes and padding only in one place.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=38331
Signed-off-by: Michał Masłowski <mtjm@mtjm.eu>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 34964b05c16161de65709d60799b9ad97ce56296
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jan 27 15:35:44 2012 +1000
libXi 1.5.99.3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit b355b7300235395717de06809ee6631ce55d3189
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jan 27 13:28:52 2012 +1000
Handle new XIAllowEvent request size
inputproto 2.1.99.6 restored the previous request for ABI compatibility
reasons, and it introduced a new XI 2.2 specific define.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
commit 07ced7b48219e3bc0c98806f3d7106f86d1b2ca0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Jan 17 21:26:14 2012 +0100
Force class alignment to a multiple of sizeof(XID).
Calculate length field to a multiples of sizeof(XID). XIDs are typedefs
to ulong and thus may be 8 bytes on some platforms. This can trigger a
SIGBUS if a class ends up not being 8-aligned (e.g. after XAxisInfo).
Reported-by: Nicolai Stange <nicolai.stange@zmaw.de>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
commit 15feb92b30e13e7439a3434bea9f454645b97444
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Jan 5 13:55:41 2012 +1000
man: fix typo Mappiing → Mapping
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 8576ae6b9ee974829e2fb8a834087652a6e9e1a2
Author: Cyril Brulebois <kibi@debian.org>
Date: Thu Dec 22 15:50:47 2011 +0100
configure.ac: Fix a typo in comments.
Signed-off-by: Cyril Brulebois <kibi@debian.org>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit ae0187c8708d2378373889827117911086581fdd
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Dec 22 09:42:43 2011 +1000
libXi 1.5.99.2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 47f3d887a7731f4ab68a69ed31dbe7acf6d13270
Merge: 82a6312 e73e2fe
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Dec 21 15:40:37 2011 +1000
Merge branch 'multitouch'
Conflicts:
configure.ac
commit 82a631263ef4e6f46c1f33748089db8bf603b095
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Dec 21 15:33:17 2011 +1000
libXi 1.5.0
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit e73e2fe95dab3e0048b24d16327adbe54326ff3f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Sep 14 22:33:57 2011 -0700
Implement support for XI 2.2
Adds support for the new TouchClass for multitouch-capable servers/devices.
New events:
XITouchOwnershipEvent
New event types handled:
XITouchBegin, XITouchUpdate, XITouchEnd
XIRawTouchBegin, XIRawTouchUpdate, XIRawTouchEnd
New functions:
XIGrabTouchBegin ... passive grabs on touches
XIUngrabTouchBegin
XIAllowTouchEvents ... Allow/reject touch event sequences
New XIQueryDevice classes:
XITouchClassInfo
Requires libX11 1.5 for GetReqSized
Co-authored by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 7888d14a499062a1c3b333f31f1330cecf1e97c1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Oct 25 13:30:47 2011 +1000
Bump to 1.5.99.1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit fa6505f0a86b296e8f12f0fb8f472ef17b501fdb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Dec 19 09:36:34 2011 +1000
man: minor formatting fix in XIGrabButton
commit 49408e39e4b084fe362e9ee197bfa0aa1c55384d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Nov 11 15:32:21 2011 +1000
Include config.h from source files
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
commit ba83a1e58592e41f207524f106ba26dd71fe4171
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Oct 26 08:55:35 2011 +1000
Stop unnecessary calls to size_classes
Xmalloc is a macro evaluating its argument twice.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 6d6ae8fc8b9620bf864ac7dff8d818573eee3e4f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Oct 26 08:54:53 2011 +1000
@ -41,18 +272,16 @@ Date: Wed Oct 26 08:54:53 2011 +1000
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 6d6ae8fc8b9620bf864ac7dff8d818573eee3e4f)
commit db739c0770d49e8b47da90f160b99c76be996a18
commit 323730f7fa70190d2ea00e62c6964fee524ca430
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Oct 27 10:27:49 2011 +1000
man: passive grabs return the number of failed modifier combinations
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 323730f7fa70190d2ea00e62c6964fee524ca430)
commit d21fdd9653b0e38e54692735b5a040a7acf22164
commit 5189df57e18c79327848fb117a8ede59868c8fdb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Oct 21 08:49:31 2011 +1000
@ -62,9 +291,8 @@ Date: Fri Oct 21 08:49:31 2011 +1000
particular grab.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 5189df57e18c79327848fb117a8ede59868c8fdb)
commit cb2028ed23d3f23829241de166a14c4ef9494bd5
commit 05aaf65b3b6b7dc7268137ce4ee516f08eefb62f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Oct 21 08:07:45 2011 +1000
@ -72,9 +300,152 @@ Date: Fri Oct 21 08:07:45 2011 +1000
Reported-by: Matthias Clasen <mclasen@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 05aaf65b3b6b7dc7268137ce4ee516f08eefb62f)
commit 22e9ace88d57803ecda95db7c9355a614db1902a
commit c25debae73be50b9a77454ed4d72ffeaab726846
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Oct 10 10:24:38 2011 +1000
Bump to 1.4.99.1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 7ca05f3094958c04e8f78a786061124c58f8e1f3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Sep 28 11:16:42 2011 +1000
Remove superfluous assignment of lib->classes in XIQueryDevices.
A few lines south from here we malloc lib->classes, this assignment is a
leftover from 225071e2e67fb65a0258397212f9826c9b25e078.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
commit e97c3dd00369b47af067e30e910335b199a2f147
Author: Matt Dew <marcoz@osource.org>
Date: Mon Oct 3 22:05:51 2011 -0600
1 - fix the capitalization of the ID attriutes to match either the
<title> or <funcdef> string it goes with.
2 - fix any <linkend>'s that were affected by 1.
3 - any <function> in the docs that has an actual funcdef,
will become an olink.
Signed-off-by: Matt Dew <marcoz@osource.org>
commit 5f9df47340e192d095127e3c7da180b0fb3dc286
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Sep 23 09:04:21 2011 +1000
Use a separate nclasses variable in XIQueryDevice
No functional changes, just clarifying the code. If we skip over unknown
classes, lib->num_classes != wire->num_classe. Use a separate variable to
make that change more explicit and align the code closer with
wireToDeviceChangedEvent.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
commit 2eb34db82dbd8429594c7ce1d361cabf3571edf1
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Sep 16 21:00:19 2011 -0700
Make shadow man pages generated by asciidoc work with Solaris man
Solaris man requires .so entries in man pages include the man section
directory, not just the man page filename, even when it's in the same
directory, so use sed to add it in.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
This may be a temporary fix only. See
http://lists.freedesktop.org/archives/xorg-devel/2011-September/025219.html
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit a43c0a5d2a6cf80df314c96e0b58804dd87868be
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Sep 20 15:11:13 2011 -0400
specs: refactor and complete copyright legal text
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 552f60789263ad2a1d983cf5b479af63d90f7591
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Sun Sep 18 00:53:56 2011 -0700
Use AM_CPPFLAGS to use in tree headers before installed headers
This addresses a build failure found by the tinderbox.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
commit 69f2580fd47cfe24105892e9ffb79cd046954b7d
Merge: fc5d478 3ed1b46
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Sat Sep 17 06:41:30 2011 +1000
Merge branch 'smooth-scrolling'
Conflicts:
src/XExtInt.c
commit 3ed1b463205295a5ebba7d570a4cb8dfade51a38
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Aug 17 14:50:39 2011 +1000
Support XI 2.1 XIScrollClass
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 00382417331d0b38373796fd31757be9fd3e9971
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Jun 2 13:23:32 2011 +1000
Support XI 2.1 internally
Add the required constants to pretend to support XI 2.1.
Having named constants for 2.1 seems a bit pointless, so let's just use the
numbers directly.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
commit fc5d47895c1361763aa7f088b6d8cb3859e3fda8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Sat Sep 17 06:40:01 2011 +1000
Require inputproto 2.0.99.1 or later
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 4dcbad7e10289317edc22113c1f451d79df221e1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jun 3 15:46:47 2011 +1000
man: update property and grab man pages for new constants
Suggest the use of the new XIGrabModeAsync, etc. defines instead of the core
defines. Add a BUGS section to each man page explaining
backwards-compatibility.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
commit 14f674296bc23b3cd50f6d302c3064250132c2c1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Aug 22 13:55:56 2011 +1000
man: fix typo in XIQueryDevice man page
struct name is XIValuatorClassInfo.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 91f928a70246c26cbee00bf59a8e318e9317142e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Aug 17 15:20:48 2011 +1000
@ -89,9 +460,105 @@ Date: Wed Aug 17 15:20:48 2011 +1000
handlers so to automatically skip any unknown classes.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 91f928a70246c26cbee00bf59a8e318e9317142e)
commit b6a431df65a1d98272f3c9742b2bfe2cf185d7a0
commit f5b4ff2b4bbac5477af337ed63d019b1f1bc21c9
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Sep 15 11:58:31 2011 -0400
inputlib: restore original title "X Input Device Extension Library"
Somehow the title got changed during troff to docbook conversion.
Latest troff version:
ftp://www.x.org/pub/X11R7.0/doc/PDF/XiLib.pdf
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 5174411eb67ff672abb3301268bd4fe06851ce3e
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Sep 15 11:57:12 2011 -0400
inputlib: prefix 1.0 with the word Version
To be consistent with all other docs
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit b695f07ac85e76c7502a743343aacb2c93318ac5
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Sep 15 11:56:33 2011 -0400
inputlib: fix copyright statements
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit d8aea9731674ecb4e313051f866966113473e395
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Sep 12 16:54:45 2011 -0400
docs: use the &fullrelvers; entity to set X11 release information
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit b4690e1d9d0a27e04c7204614c0e88edef210ba7
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sun Sep 11 19:49:54 2011 -0400
docs: remove <productnumber> which is not used by default
This element is not rendered by default on the title. A template
customization is required to display it.
X Window System does not have a product number.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 83a3f9d1b06391d5c25602c0b6a3dba63e7abc81
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Sep 8 20:00:00 2011 -0400
docbook.am: embed css styles inside the HTML HEAD element
Rather than referring to the external xorg.css stylesheet, embed the content
of the file in the html output produced. This is accomplished by using
version 1.10 of xorg-xhtml.xsl.
This makes the whole html docs tree much more relocatable.
In addition, it eliminates xorg.css as a runtime file which makes
xorg-sgml-doctools a build time only package.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit bd4c9c82e889d737f3488c234659216a218d8eb2
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Sep 7 10:31:04 2011 -0400
docbook.am: global maintenance update - entities, images and olinking
Adding support in libX11 for html chunking caused a reorg of docbook.am
as well as the xorg-sgml-doctools masterdb for olinking.
The parameter img.src.path is added for pdf images.
A searchpath to the root builddir is added for local entities, if present.
The docbook.am makefile hides all the details and is identical for
all 22 modules having DocBook documentation. It is included by a thin
Makefile.am which requires no docbook knowledge.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 942dd55eb370e0acea3184de78619766a09f7670
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jun 3 15:46:47 2011 +1000
man: update property and grab man pages for new constants
Suggest the use of the new XIGrabModeAsync, etc. defines instead of the core
defines. Add a BUGS section to each man page explaining
backwards-compatibility.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
commit eb5039859810a0fc4e4e594a4a1ccd99c5fecf85
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Aug 22 13:55:56 2011 +1000
@ -100,9 +567,67 @@ Date: Mon Aug 22 13:55:56 2011 +1000
struct name is XIValuatorClassInfo.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 14f674296bc23b3cd50f6d302c3064250132c2c1)
commit a15593744048d23e407906e34530beb5a57e3c2c
commit 635c2c029b1e73311c3f650bcaf7eeb9e782134b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Aug 17 15:20:48 2011 +1000
Handle unknown device classes.
If the server sends an unknown device class in response to an XIQueryDevice
call, no memory is allocated for these classes but we still write type
and sourceid as well as setting to->classes[i]. The latter causes multiple
classes to point to the same memory field.
Move the common code of assigning these three into the respective class type
handlers so to automatically skip any unknown classes.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit ca73cd3b7630e7eb7d26c61c4af10d35dbce5465
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Aug 12 14:24:26 2011 +1000
Don't use the protocol defines for 2.0 versioning.
Otherwise we run into the old problem again: recompiling libXi against
newer inputproto headers will appear to change the version support,
potentially causing errors or other misbehaviours.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 5a299d1731d3db16ccdd3a66246c81ca522f1702
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon Aug 1 16:47:38 2011 -0700
Fix the FIXME output in man page .TH macros generated by asciidoc
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit e8531dd6a981c6cf19a1d256c29e886e34e8f51a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Sep 7 15:21:31 2010 +1000
Add XI2 library-internal array offsets to XIint.h
These defines are currently defined in XI.h and XI2.h. Their only use is as
offset into a library-internal array. Add them to XIint.h to have them where
they belong.
These defines do not have any effect on the protocol. They are simply
offsets into an array for libXi-specific version checking. The defines are
added to this header for readability, given that we cannot remove them from
the protocol without potentially breaking clients (who should never use
these anyway, but...) means they will never get hit.
Future defines for these offsets will only be added to libXi, not the
protocol.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 653b45b7cc275a560c1ea213216a908c125e443d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jun 24 10:09:10 2011 +1000
@ -112,35 +637,99 @@ Date: Fri Jun 24 10:09:10 2011 +1000
actual header.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 653b45b7cc275a560c1ea213216a908c125e443d)
commit 9fd7b9a9652ecebb8eb533c2a30b9fa7bb186b90
commit 809c9e936b9f5234de03148376d389fdcfa6d40a
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sun Jun 12 18:39:46 2011 -0400
Install xml versions of specs even if HAVE_XMLTO is false
DocBook/XML input source is also a usefull output format that can be viewed
with an XML viewer or editor and by some O/S help system.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 94f585af88a6486148ad6514f1f74eb83ce547ef
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sun Jun 5 16:27:37 2011 -0400
Install target dbs alongside generated documents
This matches a change in xorg-sgml-docs whereby the masterdb will look for
the target dbs into the same location as the generated documents.
The target dbs are now installed alongside the generated documents.
Previously they are installed in $prefix/sgml/X11/dbs alongside masterdb which
has the potential of installing outside the package prefix and cause
distcheck to fail when user does not have write permission in this package.
Requires XORG_CHECK_SGML_DOCTOOLS(1.8) which was released 2011-06-11
commit 2d2581479c64b8b44ab91e90ecb04acd5d106ea2
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Jun 9 15:59:23 2011 -0400
make: use AM_V_at rather than AM_V_GEN to prefix the mv command
This will prevent outputting a "GEN" prefix. Moving and removing files
is not "generating" anything.
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit f4bdafebaf123c584e1b5e4ff1bc48f7cf4c5b26
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Jun 9 15:49:23 2011 -0400
make: remove unneeded AM_V_GEN silent rule directive.
It happens to be in the middle of the script statement and cause this
incorrect output:
rm XCloseDevice.man && make
GEN XOpenDevice.3
/bin/bash: line 1: @echo: command not found
/bin/bash: line 2: @echo: command not found
[...]
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit f4930482c24a22c8cdf9da3c96516936ddd1f7b9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Jun 7 13:32:11 2011 +1000
Date: Tue Jun 7 14:12:08 2011 +1000
libXi 1.4.3
Bump to 1.4.99
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 7bdaa3635b7eb4bd993c317922d35cad7ed0cab9
commit 938ef832b892fdefe0d5c2bb4510c91bbbccca9f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jun 3 15:10:27 2011 +1000
man: Fix typo in XIChangeProperty
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 938ef832b892fdefe0d5c2bb4510c91bbbccca9f)
commit 63027b24113b349720f1612a4426933c1364ea28
commit 597a6a51721d30c4354d1133bb6da6bd2e12446e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri Jun 3 15:02:35 2011 +1000
man: Fix wrong event names in XIGrabButton.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 597a6a51721d30c4354d1133bb6da6bd2e12446e)
commit 9affea8cfd3f583647e9c6ea2b5debb97e6904c5
commit 7736957fa2598800c14a88cae1dd7809b184d743
Author: Matt Dew <marcoz@osource.org>
Date: Tue May 31 20:03:23 2011 -0600
Add id attributes to funcsynopsis to allow other docs to olink to them.
Signed-off-by: Matt Dew <marcoz@osource.org>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
commit 9faab2bc0bdd4d98a04e572a7a5201bfcd3bdc70
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Jun 2 16:21:59 2011 +1000
@ -152,16 +741,45 @@ Date: Thu Jun 2 16:21:59 2011 +1000
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 9faab2bc0bdd4d98a04e572a7a5201bfcd3bdc70)
commit 641d1e9943208a8b2c2aef843bd17cb22f833b06
commit 67441d30df756eb715a262d3439865dedd4055e8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu Jun 2 14:17:44 2011 +1000
man: fix missing comma in XIGrabEnter man page
(cherry picked from commit 67441d30df756eb715a262d3439865dedd4055e8)
commit f37dee93cb288f11d286c7bc4222b2f571ccfd65
commit 4a694b3f4f5c92d62526ea1c5461c59df86c13db
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu May 5 09:30:21 2011 +1000
Silence compiler warning due to differnent event conversion procs
XExtInt.c:161:5: warning: initialization from incompatible pointer type
XSndExEv.c: In function 'XSendExtensionEvent':
XSndExEv.c:84:8: warning: assignment from incompatible pointer type
Xlib and libXi differ in the conversion functions. libXi takes an xEvent**
and a num_events parameter since it may split an event into multiple
xEvents.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit fd680f025b1db22b1069aed2f142f670181574e5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu May 5 09:20:23 2011 +1000
Silence compiler warning in XListDProp.c
XListDProp.c: In function 'XListDeviceProperties':
XListDProp.c:72:9: warning: pointer targets in passing argument 2 of
'_XRead32' differ in signedness
/usr/include/X11/Xlibint.h:652:13: note: expected 'long int *' but argument
is of type 'Atom *'
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit aa2432240ad02c54280f2d11c007969c3eb9b79f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu May 5 09:43:32 2011 +1000
@ -172,9 +790,29 @@ Date: Thu May 5 09:43:32 2011 +1000
paragraph are just realignment due to the linebreak.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit aa2432240ad02c54280f2d11c007969c3eb9b79f)
commit 89c7eff322c60d78c814693ecb28fa6c65159d3e
commit f148a6279f07f029fc6a5b0a6556ff6622e6686a
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed Feb 2 17:01:52 2011 -0800
Move Xinput server API documentation from libXi to xserver
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
commit 4cc2b17a3d069b296837edbd6e81af5bbf9821b4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue May 3 14:51:12 2011 +1000
Remove a few unused assignments.
Found by static analyzer.
Reported-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
commit cc6feecae23b321952921cf927bc965386844c8c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue May 3 14:34:22 2011 +1000
@ -187,9 +825,8 @@ Date: Tue May 3 14:34:22 2011 +1000
Reported-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit cc6feecae23b321952921cf927bc965386844c8c)
commit 7c6003718458ede0542233a213e05d67731d3e28
commit af65475b1f6b7209750220a74aaad9968d54aaf7
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue May 3 13:21:02 2011 +1000
@ -226,9 +863,8 @@ Date: Tue May 3 13:21:02 2011 +1000
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit af65475b1f6b7209750220a74aaad9968d54aaf7)
commit 8abdde71b83ff37b8500282e4856c323be508f67
commit 18177afd4fb3934d0a9083c599fb96701eec2ad9
Author: Matthieu Herrb <matthieu.herrb@laas.fr>
Date: Fri Apr 1 22:49:09 2011 +0200
@ -239,7 +875,36 @@ Date: Fri Apr 1 22:49:09 2011 +0200
architectures.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 18177afd4fb3934d0a9083c599fb96701eec2ad9)
commit 75dc4029316c321d8f09fae584024f36c5c85c7f
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sun Feb 27 15:06:18 2011 -0500
Documentation: add Docbook external references support
When writing technical documentation, it is often necessary to cross
reference to other information. When that other information is not in the
current document, additional support is needed, namely <olink>.
A new feature with version 1.7 of xorg-sgml-doctools adds references to
other documents within or outside this package.
This patch adds technical support for this feature but does not change
the content of the documentation as seen by the end user.
Each book or article must generate a database containing the href
of sections that can be referred to from another document. This database
is installed in DATAROOTDIR/sgml/X11/dbs. There is a requirement that
the value of DATAROOTDIR for xorg-sgml-doctools and for the package
documentation is the same. This forms a virtual document tree.
This database is consulted by other documents while they are being generated
in order to fulfill the missing information for linking.
Refer to the xorg-sgml-doctools for further technical information.
Co-authored-by: Matt Dew <marcoz@osource.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 32236a7779f721d252d633d06ade306f246421a3
Author: Jeremy Huddleston <jeremyhu@apple.com>

View File

@ -1,4 +1,4 @@
SUBDIRS = src man doc specs
SUBDIRS = src man specs
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = xi.pc

View File

@ -1,7 +1,6 @@
# $OpenBSD: Makefile.bsd-wrapper,v 1.7 2012/06/11 19:24:48 matthieu Exp $
# $OpenBSD: Makefile.bsd-wrapper,v 1.6 2010/11/11 10:54:03 matthieu Exp $
SHARED_LIBS= Xi 11.0
SHARED_LIBS= Xi 11.1
CONFIGURE_ARGS+= --without-xmlto --without-asciidoc --without-fop \
--disable-specs

View File

@ -96,6 +96,7 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_CFLAGS = @BASE_CFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@ -115,6 +116,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_DOCS_FALSE = @ENABLE_DOCS_FALSE@
ENABLE_DOCS_TRUE = @ENABLE_DOCS_TRUE@
ENABLE_SPECS_FALSE = @ENABLE_SPECS_FALSE@
ENABLE_SPECS_TRUE = @ENABLE_SPECS_TRUE@
EXEEXT = @EXEEXT@
@ -135,6 +138,8 @@ HAVE_XMLTO_FALSE = @HAVE_XMLTO_FALSE@
HAVE_XMLTO_TEXT_FALSE = @HAVE_XMLTO_TEXT_FALSE@
HAVE_XMLTO_TEXT_TRUE = @HAVE_XMLTO_TEXT_TRUE@
HAVE_XMLTO_TRUE = @HAVE_XMLTO_TRUE@
HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@
HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_MANPAGES_FALSE = @INSTALL_MANPAGES_FALSE@
@ -189,6 +194,7 @@ XMALLOC_ZERO_CFLAGS = @XMALLOC_ZERO_CFLAGS@
XMLTO = @XMLTO@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XORG_SGML_PATH = @XORG_SGML_PATH@
XSLTPROC = @XSLTPROC@
XSL_STYLESHEET = @XSL_STYLESHEET@
XTMALLOC_ZERO_CFLAGS = @XTMALLOC_ZERO_CFLAGS@
ac_ct_AR = @ac_ct_AR@
@ -236,7 +242,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
SUBDIRS = src man doc specs
SUBDIRS = src man specs
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = xi.pc
MAINTAINERCLEANFILES = ChangeLog INSTALL

398
lib/libXi/aclocal.m4 vendored
View File

@ -9609,7 +9609,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what
# version you require.
m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.15.0])
m4_define([vers_have], [1.16.2])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -10617,6 +10617,7 @@ AC_MSG_RESULT([$build_specs])
AC_DEFUN([XORG_ENABLE_UNIT_TESTS],[
AC_BEFORE([$0], [XORG_WITH_GLIB])
AC_BEFORE([$0], [XORG_LD_WRAP])
AC_REQUIRE([XORG_MEMORY_CHECK_FLAGS])
m4_define([_defopt], m4_default([$1], [auto]))
AC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests],
[Enable building unit test cases (default: ]_defopt[)]),
@ -10627,6 +10628,39 @@ AC_MSG_CHECKING([whether to build unit test cases])
AC_MSG_RESULT([$enable_unit_tests])
]) # XORG_ENABLE_UNIT_TESTS
# XORG_ENABLE_INTEGRATION_TESTS (enable_unit_tests=auto)
# ------------------------------------------------------
# Minimum version: 1.17.0
#
# This macro enables a builder to enable/disable integration testing
# It makes no assumption about the test cases' implementation
# Test cases may or may not use Automake "Support for test suites"
#
# Please see XORG_ENABLE_UNIT_TESTS for unit test support. Unit test support
# usually requires less dependencies and may be built and run under less
# stringent environments than integration tests.
#
# Interface to module:
# ENABLE_INTEGRATION_TESTS: used in makefiles to conditionally build tests
# enable_integration_tests: used in configure.ac for additional configuration
# --enable-integration-tests: 'yes' user instructs the module to build tests
# 'no' user instructs the module not to build tests
# parm1: specify the default value, yes or no.
#
AC_DEFUN([XORG_ENABLE_INTEGRATION_TESTS],[
AC_REQUIRE([XORG_MEMORY_CHECK_FLAGS])
m4_define([_defopt], m4_default([$1], [auto]))
AC_ARG_ENABLE(integration-tests, AS_HELP_STRING([--enable-integration-tests],
[Enable building integration test cases (default: ]_defopt[)]),
[enable_integration_tests=$enableval],
[enable_integration_tests=]_defopt)
m4_undefine([_defopt])
AM_CONDITIONAL([ENABLE_INTEGRATION_TESTS],
[test "x$enable_integration_tests" != xno])
AC_MSG_CHECKING([whether to build unit test cases])
AC_MSG_RESULT([$enable_integration_tests])
]) # XORG_ENABLE_INTEGRATION_TESTS
# XORG_WITH_GLIB([MIN-VERSION], [DEFAULT])
# ----------------------------------------
# Minimum version: 1.13.0
@ -10637,6 +10671,10 @@ AC_MSG_RESULT([$enable_unit_tests])
# When used with ENABLE_UNIT_TESTS, it is assumed GLib is used for unit testing.
# Otherwise the value of $enable_unit_tests is blank.
#
# Please see XORG_ENABLE_INTEGRATION_TESTS for integration test support. Unit
# test support usually requires less dependencies and may be built and run under
# less stringent environments than integration tests.
#
# Interface to module:
# HAVE_GLIB: used in makefiles to conditionally build targets
# with_glib: used in configure.ac to know if GLib has been found
@ -10688,8 +10726,8 @@ fi
AM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes])
]) # XORG_WITH_GLIB
# XORG_LD_WRAP
# ------------
# XORG_LD_WRAP([required|optional])
# ---------------------------------
# Minimum version: 1.13.0
#
# Check if linker supports -wrap, passed via compiler flags
@ -10697,10 +10735,18 @@ AM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes])
# When used with ENABLE_UNIT_TESTS, it is assumed -wrap is used for unit testing.
# Otherwise the value of $enable_unit_tests is blank.
#
# Argument added in 1.16.0 - default is "required", to match existing behavior
# of returning an error if enable_unit_tests is yes, and ld -wrap is not
# available, an argument of "optional" allows use when some unit tests require
# ld -wrap and others do not.
#
AC_DEFUN([XORG_LD_WRAP],[
XORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no])
XORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no],
[AC_LANG_PROGRAM([#include <stdlib.h>
void __wrap_exit(int status) { return; }],
[exit(0);])])
# Not having ld wrap when unit testing has been explicitly requested is an error
if test "x$enable_unit_tests" = x"yes"; then
if test "x$enable_unit_tests" = x"yes" -a "x$1" != "xoptional"; then
if test "x$have_ld_wrap" = x"no"; then
AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available])
fi
@ -10713,7 +10759,7 @@ AM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes])
# -----------------------
# SYNOPSIS
#
# XORG_CHECK_LINKER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
# XORG_CHECK_LINKER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE], [PROGRAM-SOURCE])
#
# DESCRIPTION
#
@ -10723,6 +10769,8 @@ AM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes])
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# PROGRAM-SOURCE is the program source to link with, if needed
#
# NOTE: Based on AX_CHECK_COMPILER_FLAGS.
#
# LICENSE
@ -10763,7 +10811,7 @@ AS_LITERAL_IF([$1],
[AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [
ax_save_FLAGS=$LDFLAGS
LDFLAGS="$1"
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
AC_LINK_IFELSE([m4_default([$4],[AC_LANG_PROGRAM()])],
AS_TR_SH(xorg_cv_linker_flags_[$1])=yes,
AS_TR_SH(xorg_cv_linker_flags_[$1])=no)
LDFLAGS=$ax_save_FLAGS])],
@ -10782,6 +10830,52 @@ else
fi
]) # XORG_CHECK_LINKER_FLAGS
# XORG_MEMORY_CHECK_FLAGS
# -----------------------
# Minimum version: 1.16.0
#
# This macro attempts to find appropriate memory checking functionality
# for various platforms which unit testing code may use to catch various
# forms of memory allocation and access errors in testing.
#
# Interface to module:
# XORG_MALLOC_DEBUG_ENV - environment variables to set to enable debugging
# Usually added to TESTS_ENVIRONMENT in Makefile.am
#
# If the user sets the value of XORG_MALLOC_DEBUG_ENV, it is used verbatim.
#
AC_DEFUN([XORG_MEMORY_CHECK_FLAGS],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_ARG_VAR([XORG_MALLOC_DEBUG_ENV],
[Environment variables to enable memory checking in tests])
# Check for different types of support on different platforms
case $host_os in
solaris*)
AC_CHECK_LIB([umem], [umem_alloc],
[malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default'])
;;
*-gnu*) # GNU libc - Value is used as a single byte bit pattern,
# both directly and inverted, so should not be 0 or 255.
malloc_debug_env='MALLOC_PERTURB_=15'
;;
darwin*)
malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib'
;;
*bsd*)
malloc_debug_env='MallocPreScribble=1 MallocScribble=1'
;;
esac
# User supplied flags override default flags
if test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then
malloc_debug_env="$XORG_MALLOC_DEBUG_ENV"
fi
AC_SUBST([XORG_MALLOC_DEBUG_ENV],[$malloc_debug_env])
]) # XORG_WITH_LINT
# XORG_CHECK_MALLOC_ZERO
# ----------------------
# Minimum version: 1.0.0
@ -10939,41 +11033,248 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
#
# Checks for various brands of compilers and sets flags as appropriate:
# GNU gcc - relies on AC_PROG_CC (via AC_PROG_CC_C99) to set GCC to "yes"
# GNU g++ - relies on AC_PROG_CXX to set GXX to "yes"
# clang compiler - sets CLANGCC to "yes"
# Intel compiler - sets INTELCC to "yes"
# Sun/Oracle Solaris Studio cc - sets SUNCC to "yes"
#
AC_DEFUN([XORG_COMPILER_BRAND], [
AC_REQUIRE([AC_PROG_CC_C99])
AC_LANG_CASE(
[C], [
AC_REQUIRE([AC_PROG_CC_C99])
],
[C++], [
AC_REQUIRE([AC_PROG_CXX])
]
)
AC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"])
AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
]) # XORG_COMPILER_BRAND
# XORG_TESTSET_CFLAG(<variable>, <flag>, [<alternative flag>, ...])
# ---------------
# Minimum version: 1.16.0
#
# Test if the compiler works when passed the given flag as a command line argument.
# If it succeeds, the flag is appeneded to the given variable. If not, it tries the
# next flag in the list until there are no more options.
#
# Note that this does not guarantee that the compiler supports the flag as some
# compilers will simply ignore arguments that they do not understand, but we do
# attempt to weed out false positives by using -Werror=unknown-warning-option and
# -Werror=unused-command-line-argument
#
AC_DEFUN([XORG_TESTSET_CFLAG], [
m4_if([$#], 0, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])])
m4_if([$#], 1, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])])
AC_LANG_COMPILER_REQUIRE
AC_LANG_CASE(
[C], [
AC_REQUIRE([AC_PROG_CC_C99])
define([PREFIX], [C])
define([CACHE_PREFIX], [cc])
define([COMPILER], [$CC])
],
[C++], [
define([PREFIX], [CXX])
define([CACHE_PREFIX], [cxx])
define([COMPILER], [$CXX])
]
)
[xorg_testset_save_]PREFIX[FLAGS]="$PREFIX[FLAGS]"
if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "x" ; then
PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option"
AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unknown-warning-option],
[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option],
AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=yes],
[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=no]))
[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]=$[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option]
PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]"
fi
if test "x$[xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]" = "x" ; then
if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "xyes" ; then
PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option"
fi
PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument"
AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unused-command-line-argument],
[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument],
AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=yes],
[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=no]))
[xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]=$[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument]
PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]"
fi
found="no"
m4_foreach([flag], m4_cdr($@), [
if test $found = "no" ; then
if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option"
fi
if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument"
fi
PREFIX[FLAGS]="$PREFIX[FLAGS] ]flag["
dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname
AC_MSG_CHECKING([if ]COMPILER[ supports]flag[])
cacheid=AS_TR_SH([xorg_cv_]CACHE_PREFIX[_flag_]flag[])
AC_CACHE_VAL($cacheid,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;])],
[eval $cacheid=yes],
[eval $cacheid=no])])
PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]"
eval supported=\$$cacheid
AC_MSG_RESULT([$supported])
if test "$supported" = "yes" ; then
$1="$$1 ]flag["
found="yes"
fi
fi
])
]) # XORG_TESTSET_CFLAG
# XORG_COMPILER_FLAGS
# ---------------
# Minimum version: 1.16.0
#
# Defines BASE_CFLAGS or BASE_CXXFLAGS to contain a set of command line
# arguments supported by the selected compiler which do NOT alter the generated
# code. These arguments will cause the compiler to print various warnings
# during compilation AND turn a conservative set of warnings into errors.
#
# The set of flags supported by BASE_CFLAGS and BASE_CXXFLAGS will grow in
# future versions of util-macros as options are added to new compilers.
#
AC_DEFUN([XORG_COMPILER_FLAGS], [
AC_REQUIRE([XORG_COMPILER_BRAND])
AC_ARG_ENABLE(selective-werror,
AS_HELP_STRING([--disable-selective-werror],
[Turn off selective compiler errors. (default: enabled)]),
[SELECTIVE_WERROR=$enableval],
[SELECTIVE_WERROR=yes])
AC_LANG_CASE(
[C], [
define([PREFIX], [C])
],
[C++], [
define([PREFIX], [CXX])
]
)
# -v is too short to test reliably with XORG_TESTSET_CFLAG
if test "x$SUNCC" = "xyes"; then
[BASE_]PREFIX[FLAGS]="-v"
else
[BASE_]PREFIX[FLAGS]=""
fi
# This chunk of warnings were those that existed in the legacy CWARNFLAGS
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wall])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-arith])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-declarations])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wformat=2], [-Wformat])
AC_LANG_CASE(
[C], [
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wstrict-prototypes])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement])
]
)
# This chunk adds additional warnings that could catch undesired effects.
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls])
# These are currently disabled because they are noisy. They will be enabled
# in the future once the codebase is sufficiently modernized to silence
# them. For now, I don't want them to drown out the other warnings.
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses])
# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
# Turn some warnings into errors, so we don't accidently get successful builds
# when there are problems that should be fixed.
if test "x$SELECTIVE_WERROR" = "xyes" ; then
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=implicit], [-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=nonnull])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=init-self])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=main])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=missing-braces])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=sequence-point])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=return-type], [-errwarn=E_FUNC_HAS_NO_RETURN_STMT])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=trigraphs])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=array-bounds])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=write-strings])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=address])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=int-to-pointer-cast], [-errwarn=E_BAD_PTR_INT_COMBINATION])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=pointer-to-int-cast]) # Also -errwarn=E_BAD_PTR_INT_COMBINATION
else
AC_MSG_WARN([You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wimplicit])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnonnull])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Winit-self])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmain])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-braces])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wsequence-point])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wreturn-type])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wtrigraphs])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Warray-bounds])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wwrite-strings])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Waddress])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wint-to-pointer-cast])
XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-to-int-cast])
fi
AC_SUBST([BASE_]PREFIX[FLAGS])
]) # XORG_COMPILER_FLAGS
# XORG_CWARNFLAGS
# ---------------
# Minimum version: 1.2.0
# Deprecated since: 1.16.0 (Use XORG_COMPILER_FLAGS instead)
#
# Defines CWARNFLAGS to enable C compiler warnings.
#
# This function is deprecated because it defines -fno-strict-aliasing
# which alters the code generated by the compiler. If -fno-strict-aliasing
# is needed, then it should be added explicitly in the module when
# it is updated to use BASE_CFLAGS.
#
AC_DEFUN([XORG_CWARNFLAGS], [
AC_REQUIRE([AC_PROG_CC_C99])
AC_REQUIRE([XORG_COMPILER_FLAGS])
AC_REQUIRE([XORG_COMPILER_BRAND])
if test "x$GCC" = xyes ; then
CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
-Wbad-function-cast -Wformat=2"
case `$CC -dumpversion` in
3.4.* | 4.*)
CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement"
;;
esac
else
if test "x$SUNCC" = "xyes"; then
CWARNFLAGS="-v"
fi
fi
AC_SUBST(CWARNFLAGS)
AC_LANG_CASE(
[C], [
CWARNFLAGS="$BASE_CFLAGS"
if test "x$GCC" = xyes ; then
CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing"
fi
AC_SUBST(CWARNFLAGS)
]
)
]) # XORG_CWARNFLAGS
# XORG_STRICT_OPTION
@ -10983,41 +11284,43 @@ AC_SUBST(CWARNFLAGS)
# Add configure option to enable strict compilation flags, such as treating
# warnings as fatal errors.
# If --enable-strict-compilation is passed to configure, adds strict flags to
# $CWARNFLAGS.
# $BASE_CFLAGS or $BASE_CXXFLAGS and the deprecated $CWARNFLAGS.
#
# Starting in 1.14.0 also exports $STRICT_CFLAGS for use in other tests or
# when strict compilation is unconditionally desired.
AC_DEFUN([XORG_STRICT_OPTION], [
# If the module's configure.ac calls AC_PROG_CC later on, CC gets set to C89
AC_REQUIRE([AC_PROG_CC_C99])
AC_REQUIRE([XORG_COMPILER_BRAND])
AC_REQUIRE([XORG_CWARNFLAGS])
AC_REQUIRE([XORG_COMPILER_FLAGS])
AC_ARG_ENABLE(strict-compilation,
AS_HELP_STRING([--enable-strict-compilation],
[Enable all warnings from compiler and make them errors (default: disabled)]),
[STRICT_COMPILE=$enableval], [STRICT_COMPILE=no])
if test "x$GCC" = xyes ; then
STRICT_CFLAGS="-pedantic -Werror"
# Add -Werror=attributes if supported (gcc 4.2 & later)
AC_MSG_CHECKING([if $CC supports -Werror=attributes])
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $STRICT_CFLAGS -Werror=attributes"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([return 0;])],
[STRICT_CFLAGS="$STRICT_CFLAGS -Werror=attributes"
AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])])
CFLAGS="$save_CFLAGS"
elif test "x$SUNCC" = "xyes"; then
STRICT_CFLAGS="-errwarn"
elif test "x$INTELCC" = "xyes"; then
STRICT_CFLAGS="-Werror"
fi
AC_LANG_CASE(
[C], [
define([PREFIX], [C])
],
[C++], [
define([PREFIX], [CXX])
]
)
[STRICT_]PREFIX[FLAGS]=""
XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-pedantic])
XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror], [-errwarn])
# Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not
# activate it with -Werror, so we add it here explicitly.
XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror=attributes])
if test "x$STRICT_COMPILE" = "xyes"; then
CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"
[BASE_]PREFIX[FLAGS]="$[BASE_]PREFIX[FLAGS] $[STRICT_]PREFIX[FLAGS]"
AC_LANG_CASE([C], [CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"])
fi
AC_SUBST([STRICT_CFLAGS])
AC_SUBST([CWARNFLAGS])
AC_SUBST([STRICT_]PREFIX[FLAGS])
AC_SUBST([BASE_]PREFIX[FLAGS])
AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS]))
]) # XORG_STRICT_OPTION
# XORG_DEFAULT_OPTIONS
@ -11028,6 +11331,7 @@ AC_SUBST([CWARNFLAGS])
#
AC_DEFUN([XORG_DEFAULT_OPTIONS], [
AC_REQUIRE([AC_PROG_INSTALL])
XORG_COMPILER_FLAGS
XORG_CWARNFLAGS
XORG_STRICT_OPTION
XORG_RELEASE_VERSION

9783
lib/libXi/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([libXi], [1.4.5],
AC_INIT([libXi], [1.6.1],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXi])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([src/config.h])
@ -13,20 +13,22 @@ AM_MAINTAINER_MODE
# Initialize libtool
AC_PROG_LIBTOOL
# Require xorg-macros minimum of 1.10 for DocBook XML documentation
# Require xorg-macros minimum of 1.12 for DocBook external references
m4_ifndef([XORG_MACROS_VERSION],
[m4_fatal([must install xorg-macros 1.10 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.10)
[m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.12)
XORG_DEFAULT_OPTIONS
XORG_ENABLE_DOCS
XORG_ENABLE_SPECS
XORG_WITH_XMLTO(0.0.20)
XORG_WITH_XMLTO(0.0.22)
XORG_WITH_FOP
XORG_CHECK_SGML_DOCTOOLS(1.5)
XORG_WITH_XSLTPROC
XORG_CHECK_SGML_DOCTOOLS(1.8)
XORG_WITH_ASCIIDOC(8.4.5)
XORG_CHECK_MALLOC_ZERO
# Obtain compiler/linker options for depedencies
PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.2.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 1.9.99.902])
# Obtain compiler/linker options for dependencies
PKG_CHECK_MODULES(XI, [xproto >= 7.0.13] [x11 >= 1.4.99.1] [xextproto >= 7.0.3] [xext >= 1.0.99.1] [inputproto >= 2.1.99.6])
# Check for xmlto and asciidoc for man page conversion
# (only needed by people building tarballs)
@ -49,7 +51,6 @@ AM_CONDITIONAL([INSTALL_MANPAGES],
AC_CONFIG_FILES([Makefile
src/Makefile
man/Makefile
doc/Makefile
specs/Makefile
xi.pc])
AC_OUTPUT

View File

@ -1,63 +0,0 @@
#
# Copyright 2009 Sun Microsystems, Inc. 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.
#
if ENABLE_SPECS
specdir = $(docdir)/$(subdir)
doc_sources = porting.xml
dist_spec_DATA = $(doc_sources)
if HAVE_XMLTO
spec_DATA = $(doc_sources:.xml=.html)
if HAVE_FOP
spec_DATA += $(doc_sources:.xml=.ps) $(doc_sources:.xml=.pdf)
endif
if HAVE_XMLTO_TEXT
spec_DATA += $(doc_sources:.xml=.txt)
endif
if HAVE_STYLESHEETS
XMLTO_FLAGS = -m $(XSL_STYLESHEET) \
--stringparam html.stylesheet=$(STYLESHEET_SRCDIR)/xorg.css
endif
CLEANFILES = $(spec_DATA)
SUFFIXES = .xml .ps .pdf .txt .html
%.txt: %.xml $(dist_spec_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) txt $<
%.html: %.xml $(dist_spec_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) xhtml-nochunks $<
%.pdf: %.xml $(dist_spec_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop pdf $<
%.ps: %.xml $(dist_spec_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop ps $<
endif HAVE_XMLTO
endif ENABLE_SPECS

View File

@ -1,470 +0,0 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
#
# Copyright 2009 Sun Microsystems, Inc. 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.
#
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_XMLTO_TRUE@am__append_1 = $(doc_sources:.xml=.ps) $(doc_sources:.xml=.pdf)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TEXT_TRUE@@HAVE_XMLTO_TRUE@am__append_2 = $(doc_sources:.xml=.txt)
subdir = doc
DIST_COMMON = $(am__dist_spec_DATA_DIST) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/src/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__dist_spec_DATA_DIST = porting.xml
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(specdir)" "$(DESTDIR)$(specdir)"
dist_specDATA_INSTALL = $(INSTALL_DATA)
specDATA_INSTALL = $(INSTALL_DATA)
DATA = $(dist_spec_DATA) $(spec_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
ASCIIDOC = @ASCIIDOC@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_SPECS_FALSE = @ENABLE_SPECS_FALSE@
ENABLE_SPECS_TRUE = @ENABLE_SPECS_TRUE@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
FOP = @FOP@
GREP = @GREP@
HAVE_ASCIIDOC_FALSE = @HAVE_ASCIIDOC_FALSE@
HAVE_ASCIIDOC_TRUE = @HAVE_ASCIIDOC_TRUE@
HAVE_DOCTOOLS_FALSE = @HAVE_DOCTOOLS_FALSE@
HAVE_DOCTOOLS_TRUE = @HAVE_DOCTOOLS_TRUE@
HAVE_FOP_FALSE = @HAVE_FOP_FALSE@
HAVE_FOP_TRUE = @HAVE_FOP_TRUE@
HAVE_STYLESHEETS_FALSE = @HAVE_STYLESHEETS_FALSE@
HAVE_STYLESHEETS_TRUE = @HAVE_STYLESHEETS_TRUE@
HAVE_XMLTO_FALSE = @HAVE_XMLTO_FALSE@
HAVE_XMLTO_TEXT_FALSE = @HAVE_XMLTO_TEXT_FALSE@
HAVE_XMLTO_TEXT_TRUE = @HAVE_XMLTO_TEXT_TRUE@
HAVE_XMLTO_TRUE = @HAVE_XMLTO_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_MANPAGES_FALSE = @INSTALL_MANPAGES_FALSE@
INSTALL_MANPAGES_TRUE = @INSTALL_MANPAGES_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MALLOC_ZERO_CFLAGS = @MALLOC_ZERO_CFLAGS@
MANIFEST_TOOL = @MANIFEST_TOOL@
MAN_SUBSTS = @MAN_SUBSTS@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
STYLESHEET_SRCDIR = @STYLESHEET_SRCDIR@
VERSION = @VERSION@
XI_CFLAGS = @XI_CFLAGS@
XI_LIBS = @XI_LIBS@
XMALLOC_ZERO_CFLAGS = @XMALLOC_ZERO_CFLAGS@
XMLTO = @XMLTO@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XORG_SGML_PATH = @XORG_SGML_PATH@
XSL_STYLESHEET = @XSL_STYLESHEET@
XTMALLOC_ZERO_CFLAGS = @XTMALLOC_ZERO_CFLAGS@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
@ENABLE_SPECS_TRUE@specdir = $(docdir)/$(subdir)
@ENABLE_SPECS_TRUE@doc_sources = porting.xml
@ENABLE_SPECS_TRUE@dist_spec_DATA = $(doc_sources)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@spec_DATA = \
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(doc_sources:.xml=.html) \
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(am__append_1) \
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(am__append_2)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_FLAGS = -m $(XSL_STYLESHEET) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ --stringparam html.stylesheet=$(STYLESHEET_SRCDIR)/xorg.css
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@CLEANFILES = $(spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@SUFFIXES = .xml .ps .pdf .txt .html
all: all-am
.SUFFIXES:
.SUFFIXES: .xml .ps .pdf .txt .html
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-dist_specDATA: $(dist_spec_DATA)
@$(NORMAL_INSTALL)
test -z "$(specdir)" || $(mkdir_p) "$(DESTDIR)$(specdir)"
@list='$(dist_spec_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(dist_specDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(specdir)/$$f'"; \
$(dist_specDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(specdir)/$$f"; \
done
uninstall-dist_specDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_spec_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(specdir)/$$f'"; \
rm -f "$(DESTDIR)$(specdir)/$$f"; \
done
install-specDATA: $(spec_DATA)
@$(NORMAL_INSTALL)
test -z "$(specdir)" || $(mkdir_p) "$(DESTDIR)$(specdir)"
@list='$(spec_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(specDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(specdir)/$$f'"; \
$(specDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(specdir)/$$f"; \
done
uninstall-specDATA:
@$(NORMAL_UNINSTALL)
@list='$(spec_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(specdir)/$$f'"; \
rm -f "$(DESTDIR)$(specdir)/$$f"; \
done
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(specdir)" "$(DESTDIR)$(specdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-dist_specDATA install-specDATA
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-dist_specDATA uninstall-info-am \
uninstall-specDATA
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dist_specDATA \
install-exec install-exec-am install-info install-info-am \
install-man install-specDATA install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
uninstall-dist_specDATA uninstall-info-am uninstall-specDATA
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@%.txt: %.xml $(dist_spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) txt $<
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@%.html: %.xml $(dist_spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) xhtml-nochunks $<
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@%.pdf: %.xml $(dist_spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop pdf $<
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@%.ps: %.xml $(dist_spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop ps $<
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

File diff suppressed because it is too large Load Diff

105
lib/libXi/docbook.am Normal file
View File

@ -0,0 +1,105 @@
#
# Generate output formats for a single DocBook/XML with/without chapters
#
# Variables set by the calling Makefile:
# shelfdir: the location where the docs/specs are installed. Typically $(docdir)
# docbook: the main DocBook/XML file, no chapters, appendix or image files
# chapters: all files pulled in by an XInclude statement and images.
#
#
# This makefile is intended for Users Documentation and Functional Specifications.
# Do not use for Developer Documentation which is not installed and does not require olink.
# Refer to http://www.x.org/releases/X11R7.6/doc/xorg-docs/ReleaseNotes.html#id2584393
# for an explanation on documents classification.
#
# DocBook/XML generated output formats to be installed
shelf_DATA =
# DocBook/XML file with chapters, appendix and images it includes
dist_shelf_DATA = $(docbook) $(chapters)
if HAVE_XMLTO
if HAVE_STYLESHEETS
XMLTO_SEARCHPATH_FLAGS = \
--searchpath "$(XORG_SGML_PATH)/X11" \
--searchpath "$(abs_top_builddir)"
XMLTO_HTML_OLINK_FLAGS = \
--stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.html.xml \
--stringparam current.docid="$(<:.xml=)"
XMLTO_HTML_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl
XMLTO_HTML_FLAGS = \
$(XMLTO_SEARCHPATH_FLAGS) \
$(XMLTO_HTML_STYLESHEET_FLAGS) \
$(XMLTO_HTML_OLINK_FLAGS)
shelf_DATA += $(docbook:.xml=.html)
%.html: %.xml $(chapters)
$(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) xhtml-nochunks $<
if HAVE_XMLTO_TEXT
shelf_DATA += $(docbook:.xml=.txt)
%.txt: %.xml $(chapters)
$(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) txt $<
endif HAVE_XMLTO_TEXT
if HAVE_FOP
XMLTO_FO_IMAGEPATH_FLAGS = --stringparam img.src.path=$(abs_builddir)/
XMLTO_PDF_OLINK_FLAGS = \
--stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.pdf.xml \
--stringparam current.docid="$(<:.xml=)"
XMLTO_FO_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-fo.xsl
XMLTO_FO_FLAGS = \
$(XMLTO_SEARCHPATH_FLAGS) \
$(XMLTO_FO_STYLESHEET_FLAGS) \
$(XMLTO_FO_IMAGEPATH_FLAGS) \
$(XMLTO_PDF_OLINK_FLAGS)
shelf_DATA += $(docbook:.xml=.pdf)
%.pdf: %.xml $(chapters)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop pdf $<
shelf_DATA += $(docbook:.xml=.ps)
%.ps: %.xml $(chapters)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop ps $<
endif HAVE_FOP
# Generate documents cross-reference target databases
if HAVE_XSLTPROC
XSLT_SEARCHPATH_FLAGS = \
--path "$(XORG_SGML_PATH)/X11" \
--path "$(abs_top_builddir)"
XSLT_OLINK_FLAGS = \
--stringparam targets.filename "$@" \
--stringparam collect.xref.targets "only" \
--stringparam olink.base.uri "$(@:.db=)"
XSLT_HTML_FLAGS = \
$(XSLT_SEARCHPATH_FLAGS) \
$(XSLT_OLINK_FLAGS) \
--nonet --xinclude \
$(STYLESHEET_SRCDIR)/xorg-xhtml.xsl
XSLT_PDF_FLAGS = \
$(XSLT_SEARCHPATH_FLAGS) \
$(XSLT_OLINK_FLAGS) \
--nonet --xinclude \
$(STYLESHEET_SRCDIR)/xorg-fo.xsl
shelf_DATA += $(docbook:.xml=.html.db)
%.html.db: %.xml $(chapters)
$(AM_V_GEN)$(XSLTPROC) $(XSLT_HTML_FLAGS) $<
shelf_DATA += $(docbook:.xml=.pdf.db)
%.pdf.db: %.xml $(chapters)
$(AM_V_GEN)$(XSLTPROC) $(XSLT_PDF_FLAGS) $<
endif HAVE_XSLTPROC
endif HAVE_STYLESHEETS
endif HAVE_XMLTO
CLEANFILES = $(shelf_DATA)

View File

@ -133,6 +133,25 @@ typedef struct
int mode;
} XIValuatorClassInfo;
/* new in XI 2.1 */
typedef struct
{
int type;
int sourceid;
int number;
int scroll_type;
double increment;
int flags;
} XIScrollClassInfo;
typedef struct
{
int type;
int sourceid;
int mode;
int num_touches;
} XITouchClassInfo;
typedef struct
{
int deviceid;
@ -292,6 +311,23 @@ typedef struct {
int what;
} XIPropertyEvent;
typedef struct {
int type; /* GenericEvent */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
int extension; /* XI extension offset */
int evtype;
Time time;
int deviceid;
int sourceid;
unsigned int touchid;
Window root;
Window event;
Window child;
int flags;
} XITouchOwnershipEvent;
_XFUNCPROTOBEGIN
extern Bool XIQueryPointer(
@ -415,6 +451,14 @@ extern Status XIAllowEvents(
Time time
);
extern Status XIAllowTouchEvents(
Display* display,
int deviceid,
unsigned int touchid,
Window grab_window,
int event_mode
);
extern int XIGrabButton(
Display* display,
int deviceid,
@ -466,6 +510,17 @@ extern int XIGrabFocusIn(
int num_modifiers,
XIGrabModifiers *modifiers_inout
);
extern int XIGrabTouchBegin(
Display* display,
int deviceid,
Window grab_window,
int owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout
);
extern Status XIUngrabButton(
Display* display,
int deviceid,
@ -500,6 +555,13 @@ extern Status XIUngrabFocusIn(
XIGrabModifiers *modifiers
);
extern Status XIUngrabTouchBegin(
Display* display,
int deviceid,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers
);
extern Atom *XIListProperties(
Display* display,

View File

@ -157,6 +157,13 @@ endif
# Unable to use __libmansuffix__ as underscores are lost in txt --> xml conversion
MAN_SUBSTS += -e 's/libmansuffix/$(LIB_MAN_SUFFIX)/g'
# asciidoc is generating [FIXME...] values in the .TH line we should fix.
MAN_SUBSTS += -e 's/\[FIXME: source\]/$(XORG_MAN_PAGE)/'
MAN_SUBSTS += -e 's/\[FIXME: manual\]/XINPUT FUNCTIONS/'
# asciidoc generates shadow page references without the man section directory
MAN_SUBSTS += -e 's/^\.so X/.so man$(LIB_MAN_SUFFIX)\/X/'
SUFFIXES = .man .$(LIB_MAN_SUFFIX)
.man.$(LIB_MAN_SUFFIX):
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
@ -168,13 +175,13 @@ SUFFIXES += .txt .xml
$(AM_V_GEN)$(ASCIIDOC) -b docbook -d manpage -o $@ $<
.xml.man:
$(AM_V_GEN)$(XMLTO) man $<
$(AM_V_GEN)mv -f $(@:.man=.libmansuffix) $@
$(AM_V_at)mv -f $(@:.man=.libmansuffix) $@
# Invoke asciidoc/xmlto main man page generation for shadow pages
$(libman_shadows):
@if test ! -f $(@:.man=.libmansuffix); then \
$(AM_V_GEN)rm -f $<; \
$(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) $< || exit 1; \
rm -f $<; \
$(MAKE) $(AM_MAKEFLAGS) $< || exit 1; \
fi
$(AM_V_GEN)mv -f $(@:.man=.libmansuffix) $@
$(AM_V_at)mv -f $(@:.man=.libmansuffix) $@
endif

View File

@ -98,6 +98,7 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_CFLAGS = @BASE_CFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@ -117,6 +118,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_DOCS_FALSE = @ENABLE_DOCS_FALSE@
ENABLE_DOCS_TRUE = @ENABLE_DOCS_TRUE@
ENABLE_SPECS_FALSE = @ENABLE_SPECS_FALSE@
ENABLE_SPECS_TRUE = @ENABLE_SPECS_TRUE@
EXEEXT = @EXEEXT@
@ -137,6 +140,8 @@ HAVE_XMLTO_FALSE = @HAVE_XMLTO_FALSE@
HAVE_XMLTO_TEXT_FALSE = @HAVE_XMLTO_TEXT_FALSE@
HAVE_XMLTO_TEXT_TRUE = @HAVE_XMLTO_TEXT_TRUE@
HAVE_XMLTO_TRUE = @HAVE_XMLTO_TRUE@
HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@
HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_MANPAGES_FALSE = @INSTALL_MANPAGES_FALSE@
@ -163,7 +168,14 @@ MANIFEST_TOOL = @MANIFEST_TOOL@
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
# Unable to use __libmansuffix__ as underscores are lost in txt --> xml conversion
MAN_SUBSTS = @MAN_SUBSTS@ -e 's/libmansuffix/$(LIB_MAN_SUFFIX)/g'
# asciidoc is generating [FIXME...] values in the .TH line we should fix.
# asciidoc generates shadow page references without the man section directory
MAN_SUBSTS = @MAN_SUBSTS@ -e 's/libmansuffix/$(LIB_MAN_SUFFIX)/g' -e \
's/\[FIXME: source\]/$(XORG_MAN_PAGE)/' -e 's/\[FIXME: \
manual\]/XINPUT FUNCTIONS/' -e 's/^\.so X/.so \
man$(LIB_MAN_SUFFIX)\/X/'
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
NM = @NM@
@ -194,6 +206,7 @@ XMALLOC_ZERO_CFLAGS = @XMALLOC_ZERO_CFLAGS@
XMLTO = @XMLTO@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XORG_SGML_PATH = @XORG_SGML_PATH@
XSLTPROC = @XSLTPROC@
XSL_STYLESHEET = @XSL_STYLESHEET@
XTMALLOC_ZERO_CFLAGS = @XTMALLOC_ZERO_CFLAGS@
ac_ct_AR = @ac_ct_AR@
@ -559,15 +572,15 @@ uninstall-am: uninstall-info-am uninstall-libmanDATA
@HAVE_DOCTOOLS_TRUE@ $(AM_V_GEN)$(ASCIIDOC) -b docbook -d manpage -o $@ $<
@HAVE_DOCTOOLS_TRUE@.xml.man:
@HAVE_DOCTOOLS_TRUE@ $(AM_V_GEN)$(XMLTO) man $<
@HAVE_DOCTOOLS_TRUE@ $(AM_V_GEN)mv -f $(@:.man=.libmansuffix) $@
@HAVE_DOCTOOLS_TRUE@ $(AM_V_at)mv -f $(@:.man=.libmansuffix) $@
# Invoke asciidoc/xmlto main man page generation for shadow pages
@HAVE_DOCTOOLS_TRUE@$(libman_shadows):
@HAVE_DOCTOOLS_TRUE@ @if test ! -f $(@:.man=.libmansuffix); then \
@HAVE_DOCTOOLS_TRUE@ $(AM_V_GEN)rm -f $<; \
@HAVE_DOCTOOLS_TRUE@ $(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) $< || exit 1; \
@HAVE_DOCTOOLS_TRUE@ rm -f $<; \
@HAVE_DOCTOOLS_TRUE@ $(MAKE) $(AM_MAKEFLAGS) $< || exit 1; \
@HAVE_DOCTOOLS_TRUE@ fi
@HAVE_DOCTOOLS_TRUE@ $(AM_V_GEN)mv -f $(@:.man=.libmansuffix) $@
@HAVE_DOCTOOLS_TRUE@ $(AM_V_at)mv -f $(@:.man=.libmansuffix) $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -2,12 +2,12 @@
.\" Title: xichangeproperty
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\" Date: 12/20/2011
.\" Date: 12/21/2011
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "XICHANGEPROPERTY" "libmansuffix" "12/20/2011" "[FIXME: source]" "[FIXME: manual]"
.TH "XICHANGEPROPERTY" "libmansuffix" "12/21/2011" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -124,7 +124,7 @@ offset
.sp
.nf
mode
One of PropModeAppend, PropModePrepend or PropModeReplace\&.
One of XIPropModeAppend, XIPropModePrepend or XIPropModeReplace\&.
.fi
.sp
.nf
@ -189,7 +189,7 @@ If the specified property exists but its type does not match the specified type,
.sp -1
.IP \(bu 2.3
.\}
If the specified property exists and either you assign AnyPropertyType to the req_type argument or the specified type matches the actual property type, XIGetProperty returns the actual property type to actual_type_return and the actual property format (never zero) to actual_format_return\&. It also returns a value to bytes_after_return and nitems_return, by defining the following values:
If the specified property exists and either you assign XIAnyPropertyType to the req_type argument or the specified type matches the actual property type, XIGetProperty returns the actual property type to actual_type_return and the actual property format (never zero) to actual_format_return\&. It also returns a value to bytes_after_return and nitems_return, by defining the following values:
.sp
.if n \{\
.RS 4
@ -228,7 +228,7 @@ The XIChangeProperty function alters the property for the specified device and c
.sp -1
.IP \(bu 2.3
.\}
If mode is PropModeReplace, XIChangeProperty discards the previous property value and stores the new data\&.
If mode is XIPropModeReplace, XIChangeProperty discards the previous property value and stores the new data\&.
.RE
.sp
.RS 4
@ -239,7 +239,7 @@ If mode is PropModeReplace, XIChangeProperty discards the previous property valu
.sp -1
.IP \(bu 2.3
.\}
If mode is PropModePrepend or PropModeAppend, XIChangeProperty inserts the specified data before the beginning of the existing data or onto the end of the existing data, respectively\&. The type and format must match the existing property value, or a BadMatch error results\&. If the property is undefined, it is treated as defined with the correct type and format with zero\-length data\&.
If mode is XIPropModePrepend or XIPropModeAppend, XIChangeProperty inserts the specified data before the beginning of the existing data or onto the end of the existing data, respectively\&. The type and format must match the existing property value, or a BadMatch error results\&. If the property is undefined, it is treated as defined with the correct type and format with zero\-length data\&.
.RE
.sp
If the specified format is 8, the property data must be a char array\&. If the specified format is 16, the property data must be a uint16_t array\&. If the specified format is 32, the property data must be a uint32_t array\&.
@ -262,6 +262,20 @@ BadValue Some numeric value falls outside the range of values accepted by the re
BadDevice An invalid device was specified\&. The device does not exist\&.
.sp
BadAtom An invalid property was specified\&. The property does not exist\&.
.SH "BUGS"
.sp
.if n \{\
.RS 4
.\}
.nf
The protocol headers for XI 2\&.0 did not provide
XIAnyPropertyType, XIPropModeReplace, XIPropModePrepend or
XIPropModeAppend\&. Use AnyPropertyType, PropModeReplace,
PropModePrepend and PropModeAppend instead, respectively\&.
.fi
.if n \{\
.RE
.\}
.SH "SEE ALSO"
.sp
XIListProperties(libmansuffix)

View File

@ -76,7 +76,7 @@ SYNOPSIS
quantities) where the data is to be retrieved.
mode
One of PropModeAppend, PropModePrepend or PropModeReplace.
One of XIPropModeAppend, XIPropModePrepend or XIPropModeReplace.
num_items
Number of items in data in the format specified.
@ -121,7 +121,7 @@ XIGetProperty sets the return arguments as follows:
nitems_return argument is empty.
- If the specified property exists and either you assign
AnyPropertyType to the req_type argument or the specified type
XIAnyPropertyType to the req_type argument or the specified type
matches the actual property type, XIGetProperty returns the
actual property type to actual_type_return and the actual property
format (never zero) to actual_format_return. It also returns a value
@ -165,10 +165,10 @@ The XIChangeProperty function alters the property for the specified device
and causes the X server to generate a XIPropertyNotify event for that
device. XIChangeProperty performs the following:
- If mode is PropModeReplace, XIChangeProperty discards the previous
- If mode is XIPropModeReplace, XIChangeProperty discards the previous
property value and stores the new data.
- If mode is PropModePrepend or PropModeAppend, XIChangeProperty
- If mode is XIPropModePrepend or XIPropModeAppend, XIChangeProperty
inserts the specified data before the beginning of the existing
data or onto the end of the existing data, respectively. The type
and format must match the existing property value, or a BadMatch
@ -221,6 +221,14 @@ BadAtom
An invalid property was specified. The property does not
exist.
BUGS
----
The protocol headers for XI 2.0 did not provide
XIAnyPropertyType, XIPropModeReplace, XIPropModePrepend or
XIPropModeAppend. Use AnyPropertyType, PropModeReplace,
PropModePrepend and PropModeAppend instead, respectively.
SEE ALSO
--------

View File

@ -2,12 +2,12 @@
.\" Title: xigrabbutton
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\" Date: 12/20/2011
.\" Date: 12/22/2011
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "XIGRABBUTTON" "libmansuffix" "12/20/2011" "[FIXME: source]" "[FIXME: manual]"
.TH "XIGRABBUTTON" "libmansuffix" "12/22/2011" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -60,24 +60,42 @@ int XIUngrabButton( Display *display,
.sp
.nf
int XIGrabKeycode( Display *display,
int deviceid,
int keycode,
Window grab_window,
int grab_mode,
int paired_device_mode,
Bool owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout);
int deviceid,
int keycode,
Window grab_window,
int grab_mode,
int paired_device_mode,
Bool owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout);
.fi
.sp
.nf
int XIUngrabKeycode( Display *display,
int deviceid,
int keycode,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers);
int deviceid,
int keycode,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers);
.fi
.sp
.nf
int XIGrabTouchBegin( Display *display,
int deviceid,
Window grab_window,
Bool owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout);
.fi
.sp
.nf
int XIUngrabTouchBegin( Display *display,
int deviceid,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers);
.fi
.sp
.nf
@ -142,14 +160,14 @@ mask
.nf
grab_mode
Specifies further processing of events from this device\&.
You can pass GrabModeSync or GrabModeAsync\&.
You can pass XIGrabModeSync or XIGrabModeAsync\&.
.fi
.sp
.nf
paired_device_mode
Specifies further processing of events from the paired
master device\&. You can pass GrabModeSync or
GrabModeAsync\&. If deviceid specifies a floating slave
master device\&. You can pass XIGrabModeSync or
XIGrabModeAsync\&. If deviceid specifies a floating slave
device, this parameter is ignored\&.
.fi
.SH "DESCRIPTION"
@ -158,8 +176,8 @@ paired_device_mode
.RS 4
.\}
.nf
XIGrabButton and XIGrabKeycode establishes a passive grab\&. The
modifier device for a button grab is the paired master device
XIGrabButton, XIGrabKeycode and XIGrabTouchBegin establish a passive
grab\&. The modifier device for a button grab is the paired master device
if deviceid specifies a master pointer\&. Otherwise, the modifier
device is the device specified with deviceid\&. In the future,
the device is actively grabbed (as for XIGrabDevice, the
@ -167,9 +185,9 @@ last\-grab time is set to the time at which the button or keycode
was pressed and the XI_ButtonPress or XI_KeyPress event is
reported if all of the following conditions are true:
* The device is not grabbed, and the specified button or
keycode is logically pressed when the specified modifier
keys are logically down on the modifier device and no other
buttons or modifier keys are logically down\&.
keycode is logically pressed or a touch event occurs when the
specified modifier keys are logically down on the modifier device
and no other buttons or modifier keys are logically down\&.
* Either the grab window is an ancestor of (or is) the focus
window, OR the grab window is a descendent of the focus
window and contains the device\&.
@ -261,10 +279,10 @@ active grab\&.
.RS 4
.\}
.nf
On success, XIGrabButton and XIGrabKeycode return 0;
On success, XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return 0;
If one or more modifier combinations could not be grabbed,
XIGrabButton and XIGrabKeycode return the number of failed
combinations and modifiers_inout contains the failed combinations
XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return the number of
failed combinations and modifiers_inout contains the failed combinations
and their respective error codes\&.
.fi
.if n \{\
@ -275,8 +293,8 @@ and their respective error codes\&.
.RS 4
.\}
.nf
XIGrabButton and XIGrabKeycode can generate BadClass, BadDevice,
BadMatch, BadValue, and BadWindow errors\&.
XIGrabButton, XIGrabKeycode and XIGrabTouchBegin can generate BadClass,
BadDevice, BadMatch, BadValue, and BadWindow errors\&.
.fi
.if n \{\
.RE
@ -286,10 +304,10 @@ BadMatch, BadValue, and BadWindow errors\&.
.RS 4
.\}
.nf
XIUngrabButton and XIUngrabKeycode releases the passive grab for
a button/modifier or keycode/modifier combination on the
specified window if it was grabbed by this client\&. A modifier
of XIAnyModifier is equivalent to issuing the ungrab request
XIUngrabButton, XIUngrabKeycode and XIUngrabTouchBegin release the
passive grab for a button/modifier, keycode/modifier or touch/modifier
combination on the specified window if it was grabbed by this client\&. A
modifier of XIAnyModifier is equivalent to issuing the ungrab request
for all possible modifier combinations, including the
combination of no modifiers\&. A button of XIAnyButton is
equivalent to issuing the request for all possible buttons\&.
@ -304,8 +322,8 @@ grab\&.
.RS 4
.\}
.nf
XIUngrabButton and XIUngrabKeycode can generate BadDevice,
BadMatch, BadValue and BadWindow errors\&.
XIUngrabButton, XIUngrabKeycode and XIUngrabTouchBegin can generate
BadDevice, BadMatch, BadValue and BadWindow errors\&.
.fi
.if n \{\
.RE
@ -316,11 +334,12 @@ BadMatch, BadValue and BadWindow errors\&.
.RS 4
.\}
.nf
XIGrabButton and XIGrabKeycode return the number of modifier combination
that could not establish a passive grab\&. The modifiers are returned in
modifiers_inout, along with the respective error for this modifier
combination\&. If XIGrabButton or XIGrabKeycode return zero, passive grabs
with all requested modifier combinations were established successfully\&.
XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return the number of
modifier combination that could not establish a passive grab\&. The
modifiers are returned in modifiers_inout, along with the respective
error for this modifier combination\&. If XIGrabButton, XIGrabKeycode
or XIGrabTouchBegin return zero, passive grabs with all requested
modifier combinations were established successfully\&.
.fi
.if n \{\
.RE
@ -345,7 +364,8 @@ BadDevice
BadMatch
This error may occur if XIGrabButton specified a device
that has no buttons, or XIGrabKeycode specified a device
that has no keys\&.
that has no keys, or XIGrabTouchBegin specified a device
that is not touch\-capable\&.
.fi
.if n \{\
.RE
@ -377,6 +397,19 @@ BadWindow
.if n \{\
.RE
.\}
.SH "BUGS"
.sp
.if n \{\
.RS 4
.\}
.nf
The protocol headers for XI 2\&.0 did not provide
XIGrabModeAsync or XIGrabModeSync\&. Use GrabModeSync and
GrabModeAsync instead, respectively\&.
.fi
.if n \{\
.RE
.\}
.SH "SEE ALSO"
.sp
.if n \{\

View File

@ -32,22 +32,36 @@ SYNOPSIS
XIGrabModifiers *modifiers);
int XIGrabKeycode( Display *display,
int deviceid,
int keycode,
Window grab_window,
int grab_mode,
int paired_device_mode,
Bool owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout);
int deviceid,
int keycode,
Window grab_window,
int grab_mode,
int paired_device_mode,
Bool owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout);
int XIUngrabKeycode( Display *display,
int deviceid,
int keycode,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers);
int deviceid,
int keycode,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers);
int XIGrabTouchBegin( Display *display,
int deviceid,
Window grab_window,
Bool owner_events,
XIEventMask *mask,
int num_modifiers,
XIGrabModifiers *modifiers_inout);
int XIUngrabTouchBegin( Display *display,
int deviceid,
Window grab_window,
int num_modifiers,
XIGrabModifiers *modifiers);
display
Specifies the connection to the X server.
@ -90,19 +104,19 @@ SYNOPSIS
grab_mode
Specifies further processing of events from this device.
You can pass GrabModeSync or GrabModeAsync.
You can pass XIGrabModeSync or XIGrabModeAsync.
paired_device_mode
Specifies further processing of events from the paired
master device. You can pass GrabModeSync or
GrabModeAsync. If deviceid specifies a floating slave
master device. You can pass XIGrabModeSync or
XIGrabModeAsync. If deviceid specifies a floating slave
device, this parameter is ignored.
DESCRIPTION
-----------
XIGrabButton and XIGrabKeycode establishes a passive grab. The
modifier device for a button grab is the paired master device
XIGrabButton, XIGrabKeycode and XIGrabTouchBegin establish a passive
grab. The modifier device for a button grab is the paired master device
if deviceid specifies a master pointer. Otherwise, the modifier
device is the device specified with deviceid. In the future,
the device is actively grabbed (as for XIGrabDevice, the
@ -110,9 +124,9 @@ DESCRIPTION
was pressed and the XI_ButtonPress or XI_KeyPress event is
reported if all of the following conditions are true:
* The device is not grabbed, and the specified button or
keycode is logically pressed when the specified modifier
keys are logically down on the modifier device and no other
buttons or modifier keys are logically down.
keycode is logically pressed or a touch event occurs when the
specified modifier keys are logically down on the modifier device
and no other buttons or modifier keys are logically down.
* Either the grab window is an ancestor of (or is) the focus
window, OR the grab window is a descendent of the focus
window and contains the device.
@ -156,35 +170,36 @@ DESCRIPTION
combination. XIGrabButton and XIGrabKeycode have no effect on an
active grab.
On success, XIGrabButton and XIGrabKeycode return 0;
On success, XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return 0;
If one or more modifier combinations could not be grabbed,
XIGrabButton and XIGrabKeycode return the number of failed
combinations and modifiers_inout contains the failed combinations
XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return the number of
failed combinations and modifiers_inout contains the failed combinations
and their respective error codes.
XIGrabButton and XIGrabKeycode can generate BadClass, BadDevice,
BadMatch, BadValue, and BadWindow errors.
XIGrabButton, XIGrabKeycode and XIGrabTouchBegin can generate BadClass,
BadDevice, BadMatch, BadValue, and BadWindow errors.
XIUngrabButton and XIUngrabKeycode releases the passive grab for
a button/modifier or keycode/modifier combination on the
specified window if it was grabbed by this client. A modifier
of XIAnyModifier is equivalent to issuing the ungrab request
XIUngrabButton, XIUngrabKeycode and XIUngrabTouchBegin release the
passive grab for a button/modifier, keycode/modifier or touch/modifier
combination on the specified window if it was grabbed by this client. A
modifier of XIAnyModifier is equivalent to issuing the ungrab request
for all possible modifier combinations, including the
combination of no modifiers. A button of XIAnyButton is
equivalent to issuing the request for all possible buttons.
XIUngrabButton and XIUngrabKeycode have no effect on an active
grab.
XIUngrabButton and XIUngrabKeycode can generate BadDevice,
BadMatch, BadValue and BadWindow errors.
XIUngrabButton, XIUngrabKeycode and XIUngrabTouchBegin can generate
BadDevice, BadMatch, BadValue and BadWindow errors.
RETURN VALUE
------------
XIGrabButton and XIGrabKeycode return the number of modifier combination
that could not establish a passive grab. The modifiers are returned in
modifiers_inout, along with the respective error for this modifier
combination. If XIGrabButton or XIGrabKeycode return zero, passive grabs
with all requested modifier combinations were established successfully.
XIGrabButton, XIGrabKeycode and XIGrabTouchBegin return the number of
modifier combination that could not establish a passive grab. The
modifiers are returned in modifiers_inout, along with the respective
error for this modifier combination. If XIGrabButton, XIGrabKeycode
or XIGrabTouchBegin return zero, passive grabs with all requested
modifier combinations were established successfully.
DIAGNOSTICS
-----------
@ -195,7 +210,8 @@ DIAGNOSTICS
BadMatch
This error may occur if XIGrabButton specified a device
that has no buttons, or XIGrabKeycode specified a device
that has no keys.
that has no keys, or XIGrabTouchBegin specified a device
that is not touch-capable.
BadValue
Some numeric value falls outside the range of values
@ -208,6 +224,13 @@ DIAGNOSTICS
A value for a Window argument does not name a defined
Window.
BUGS
----
The protocol headers for XI 2.0 did not provide
XIGrabModeAsync or XIGrabModeSync. Use GrabModeSync and
GrabModeAsync instead, respectively.
SEE ALSO
--------

View File

@ -2,12 +2,12 @@
.\" Title: xigrabdevice
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\" Date: 12/20/2011
.\" Date: 12/21/2011
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "XIGRABDEVICE" "libmansuffix" "12/20/2011" "[FIXME: source]" "[FIXME: manual]"
.TH "XIGRABDEVICE" "libmansuffix" "12/21/2011" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -144,10 +144,10 @@ mask\&.
.RS 4
.\}
.nf
If the grab_mode argument is GrabModeAsync, device event
If the grab_mode argument is XIGrabModeAsync, device event
processing continues as usual\&. If the device is currently
frozen by this client, then processing of device events is
resumed\&. If the grab_mode argument is GrabModeSync, the state
resumed\&. If the grab_mode argument is XIGrabModeSync, the state
of the device (as seen by client applications) appears to
freeze, and the X server generates no further device events
until the grabbing client issues a releasing XIAllowEvents call
@ -163,9 +163,9 @@ the server for later processing\&.
.RS 4
.\}
.nf
If paired_device_mode is GrabModeAsync, processing of events
If paired_device_mode is XIGrabModeAsync, processing of events
from the paired master device is unaffected by activation of
the grab\&. If paired_device_mode is GrabModeSync, the state of
the grab\&. If paired_device_mode is XIGrabModeSync, the state of
the paired master device (as seen by client applications)
appears to freeze, and the X server generates no further events
from this device until the grabbing client issues a releasing
@ -292,6 +292,19 @@ BadWindow
.if n \{\
.RE
.\}
.SH "BUGS"
.sp
.if n \{\
.RS 4
.\}
.nf
The protocol headers for XI 2\&.0 did not provide
XIGrabModeAsync or XIGrabModeSync\&. Use GrabModeSync and
GrabModeAsync instead, respectively\&.
.fi
.if n \{\
.RE
.\}
.SH "SEE ALSO"
.sp
.if n \{\

View File

@ -74,10 +74,10 @@ DESCRIPTION
grab_window, and is only reported if specified in the event
mask.
If the grab_mode argument is GrabModeAsync, device event
If the grab_mode argument is XIGrabModeAsync, device event
processing continues as usual. If the device is currently
frozen by this client, then processing of device events is
resumed. If the grab_mode argument is GrabModeSync, the state
resumed. If the grab_mode argument is XIGrabModeSync, the state
of the device (as seen by client applications) appears to
freeze, and the X server generates no further device events
until the grabbing client issues a releasing XIAllowEvents call
@ -85,9 +85,9 @@ DESCRIPTION
not lost while the device is frozen; they are simply queued in
the server for later processing.
If paired_device_mode is GrabModeAsync, processing of events
If paired_device_mode is XIGrabModeAsync, processing of events
from the paired master device is unaffected by activation of
the grab. If paired_device_mode is GrabModeSync, the state of
the grab. If paired_device_mode is XIGrabModeSync, the state of
the paired master device (as seen by client applications)
appears to freeze, and the X server generates no further events
from this device until the grabbing client issues a releasing
@ -141,6 +141,13 @@ DIAGNOSTICS
A value for a Window argument does not name a defined
Window.
BUGS
----
The protocol headers for XI 2.0 did not provide
XIGrabModeAsync or XIGrabModeSync. Use GrabModeSync and
GrabModeAsync instead, respectively.
SEE ALSO
--------
XIAllowEvents(libmansuffix)

View File

@ -2,12 +2,12 @@
.\" Title: xigrabenter
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\" Date: 12/20/2011
.\" Date: 12/21/2011
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "XIGRABENTER" "libmansuffix" "12/20/2011" "[FIXME: source]" "[FIXME: manual]"
.TH "XIGRABENTER" "libmansuffix" "12/21/2011" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -123,14 +123,14 @@ mask
.nf
grab_mode
Specifies further processing of events from this device\&.
You can pass GrabModeSync or GrabModeAsync\&.
You can pass XIGrabModeSync or XIGrabModeAsync\&.
.fi
.sp
.nf
paired_device_mode
Specifies further processing of events from the paired
master device\&. You can pass GrabModeSync or
GrabModeAsync\&. If deviceid specifies a floating slave
master device\&. You can pass XIGrabModeSync or
XIGrabModeAsync\&. If deviceid specifies a floating slave
device, this parameter is ignored\&.
.fi
.SH "DESCRIPTION"
@ -353,6 +353,19 @@ BadWindow
.if n \{\
.RE
.\}
.SH "BUGS"
.sp
.if n \{\
.RS 4
.\}
.nf
The protocol headers for XI 2\&.0 did not provide
XIGrabModeAsync or XIGrabModeSync\&. Use GrabModeSync and
GrabModeAsync instead, respectively\&.
.fi
.if n \{\
.RE
.\}
.SH "SEE ALSO"
.sp
.if n \{\

View File

@ -77,12 +77,12 @@ SYNOPSIS
grab_mode
Specifies further processing of events from this device.
You can pass GrabModeSync or GrabModeAsync.
You can pass XIGrabModeSync or XIGrabModeAsync.
paired_device_mode
Specifies further processing of events from the paired
master device. You can pass GrabModeSync or
GrabModeAsync. If deviceid specifies a floating slave
master device. You can pass XIGrabModeSync or
XIGrabModeAsync. If deviceid specifies a floating slave
device, this parameter is ignored.
DESCRIPTION
@ -182,6 +182,13 @@ DIAGNOSTICS
A value for a Window argument does not name a defined
Window.
BUGS
----
The protocol headers for XI 2.0 did not provide
XIGrabModeAsync or XIGrabModeSync. Use GrabModeSync and
GrabModeAsync instead, respectively.
SEE ALSO
--------

View File

@ -2,12 +2,12 @@
.\" Title: xiquerydevice
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\" Date: 12/20/2011
.\" Date: 12/22/2011
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "XIQUERYDEVICE" "libmansuffix" "12/20/2011" "[FIXME: source]" "[FIXME: manual]"
.TH "XIQUERYDEVICE" "libmansuffix" "12/22/2011" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -217,7 +217,8 @@ typedef struct
.nf
The type field specifies the type of the input class\&.
Currently, the following types are defined:
XIKeyClass, XIButtonClass, XIValuatorClass
XIKeyClass, XIButtonClass, XIValuatorClass, XIScrollClass,
XITouchClass
.fi
.if n \{\
.RE
@ -471,6 +472,174 @@ mode is XIModeRelative, this device sends relative coordinates\&.
.RS 4
.\}
.nf
typedef struct
{
int type;
int sourceid;
int number;
int scroll_type;
double increment;
int flags;
} XIScrollClassInfo;
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
This class describes scrolling capability on a valuator\&. For
each XIScrollClassInfo, an XIValuatorClassInfo with the same
number is present on the device\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
The number field specifies the valuator number on the physical
device that this scroll information applies to\&. See the
respective XIValuatorClassInfo for detailed information on this
valuator\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
The scroll_type field specifies the type of scrolling, either
XIScrollTypeVertical or XIScrollTypeHorizontal\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
The increment specifies the value change considered one unit of
scrolling down\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
The flags field specifies flags that apply to this scrolling
information:
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
If XIScrollFlagNoEmulation is set, the server will not
emulate legacy button events for valuator changes on this
valuator\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
If XIScrollFlagPreferred is set, this axis is the
preferred axis for this scroll type and will be used for
the emulation of XI_Motion events when the driver submits
legacy scroll button events\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
typedef struct
{
int type;
int sourceid;
int mode;
int num_touches;
} XITouchClassInfo;
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
A device may have zero or one XITouchClassInfo, denoting
multi\-touch capability on the device\&. A device with a XITouchClassInfo
may send TouchBegin, TouchUpdate, TouchEnd and TouchOwnership events\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
The mode field is either XIDirectTouch for direct\-input touch devices
such as touchscreens or XIDependentTouch for indirect input devices such
as touchpads\&. For XIDirectTouch devices, touch events are sent to window
at the position the touch occured\&. For XIDependentTouch devices, touch
events are sent to the window at the position of the device\*(Aqs sprite\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
The num_touches field defines the maximum number of simultaneous touches
the device supports\&. A num_touches of 0 means the maximum number of
simultaneous touches is undefined or unspecified\&. This field should be
used as a guide only, devices will lie about their capabilities\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
A device with an XITouchClassInfo may still send pointer events\&. The
valuators must be defined with the respective XIValuatorClass
classes\&. A valuator may send both pointer and touch\-events\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
XIQueryDevice can generate a BadDevice error\&.
.fi
.if n \{\

View File

@ -100,7 +100,8 @@ DESCRIPTION
The type field specifies the type of the input class.
Currently, the following types are defined:
XIKeyClass, XIButtonClass, XIValuatorClass
XIKeyClass, XIButtonClass, XIValuatorClass, XIScrollClass,
XITouchClass
In the future, additional types may be added. Clients are
required to ignore unknown input classes.
@ -194,6 +195,70 @@ DESCRIPTION
XIModeAbsolute this axis sends absolute coordinates. If the
mode is XIModeRelative, this device sends relative coordinates.
typedef struct
{
int type;
int sourceid;
int number;
int scroll_type;
double increment;
int flags;
} XIScrollClassInfo;
This class describes scrolling capability on a valuator. For
each XIScrollClassInfo, an XIValuatorClassInfo with the same
number is present on the device.
The number field specifies the valuator number on the physical
device that this scroll information applies to. See the
respective XIValuatorClassInfo for detailed information on this
valuator.
The scroll_type field specifies the type of scrolling, either
XIScrollTypeVertical or XIScrollTypeHorizontal.
The increment specifies the value change considered one unit of
scrolling down.
The flags field specifies flags that apply to this scrolling
information:
If XIScrollFlagNoEmulation is set, the server will not
emulate legacy button events for valuator changes on this
valuator.
If XIScrollFlagPreferred is set, this axis is the
preferred axis for this scroll type and will be used for
the emulation of XI_Motion events when the driver submits
legacy scroll button events.
typedef struct
{
int type;
int sourceid;
int mode;
int num_touches;
} XITouchClassInfo;
A device may have zero or one XITouchClassInfo, denoting
multi-touch capability on the device. A device with a XITouchClassInfo
may send TouchBegin, TouchUpdate, TouchEnd and TouchOwnership events.
The mode field is either XIDirectTouch for direct-input touch devices
such as touchscreens or XIDependentTouch for indirect input devices such
as touchpads. For XIDirectTouch devices, touch events are sent to window
at the position the touch occured. For XIDependentTouch devices, touch
events are sent to the window at the position of the device's sprite.
The num_touches field defines the maximum number of simultaneous touches
the device supports. A num_touches of 0 means the maximum number of
simultaneous touches is undefined or unspecified. This field should be
used as a guide only, devices will lie about their capabilities.
A device with an XITouchClassInfo may still send pointer events. The
valuators must be defined with the respective XIValuatorClass
classes. A valuator may send both pointer and touch-events.
XIQueryDevice can generate a BadDevice error.
XIFreeDeviceInfo frees the information returned by

View File

@ -2,12 +2,12 @@
.\" Title: xiqueryversion
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\" Date: 09/23/2011
.\" Date: 04/23/2012
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "XIQUERYVERSION" "libmansuffix" "09/23/2011" "[FIXME: source]" "[FIXME: manual]"
.TH "XIQUERYVERSION" "libmansuffix" "04/23/2012" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -92,6 +92,19 @@ server\*(Aqs supported version\&.
.RS 4
.\}
.nf
Consecutive calls to XIQueryVersion by the same client always return the
first returned major\&.minor version\&. If the client requests a version
lower than the first returned major\&.minor version in a subsequent call, a
BadValue error occurs\&.
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.RS 4
.\}
.nf
XIQueryVersion can generate a BadValue error\&.
.fi
.if n \{\

View File

@ -42,8 +42,12 @@ DESCRIPTION
cases major_version_inout and minor_version_inout are set to the
server's supported version.
XIQueryVersion can generate a BadValue error.
Consecutive calls to XIQueryVersion by the same client always return the
first returned major.minor version. If the client requests a version
lower than the first returned major.minor version in a subsequent call, a
BadValue error occurs.
XIQueryVersion can generate a BadValue error.
EXAMPLES
--------

View File

@ -2,12 +2,12 @@
.\" Title: xselectextensionevent
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\" Date: 09/23/2011
.\" Date: 01/18/2012
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "XSELECTEXTENSIONEVEN" "libmansuffix" "09/23/2011" "[FIXME: source]" "[FIXME: manual]"
.TH "XSELECTEXTENSIONEVEN" "libmansuffix" "01/18/2012" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -154,7 +154,7 @@ clients use in making XSelectExtensionEvent requests\&. Currently
defined macros include DeviceKeyPress, DeviceKeyRelease,
DeviceButtonPress, DeviceButtonRelese, DeviceMotionNotify,
DeviceFocusIn, DeviceFocusOut, ProximityIn, ProximityOut,
DeviceStateNotify, DeviceMappiingNotify, ChangeDeviceNotify,
DeviceStateNotify, DeviceMappingNotify, ChangeDeviceNotify,
DevicePointerMotionHint, DeviceButton1Motion,
DeviceButton2Motion, DeviceButton3Motion, DeviceButton4Motion,
DeviceButton5Motion, DeviceButtonMotion, DeviceOwnerGrabButton,

View File

@ -86,7 +86,7 @@ DESCRIPTION
defined macros include DeviceKeyPress, DeviceKeyRelease,
DeviceButtonPress, DeviceButtonRelese, DeviceMotionNotify,
DeviceFocusIn, DeviceFocusOut, ProximityIn, ProximityOut,
DeviceStateNotify, DeviceMappiingNotify, ChangeDeviceNotify,
DeviceStateNotify, DeviceMappingNotify, ChangeDeviceNotify,
DevicePointerMotionHint, DeviceButton1Motion,
DeviceButton2Motion, DeviceButton3Motion, DeviceButton4Motion,
DeviceButton5Motion, DeviceButtonMotion, DeviceOwnerGrabButton,

View File

@ -1,65 +1,16 @@
#
# Copyright 2009 Sun Microsystems, Inc. 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.
#
if ENABLE_SPECS
specdir = $(docdir)/$(subdir)
doc_sources = inputlib.xml
dist_spec_DATA = $(doc_sources) \
library.xml \
encoding.xml
# Main DocBook/XML files (DOCTYPE book)
docbook = inputlib.xml
if HAVE_XMLTO
spec_DATA = $(doc_sources:.xml=.html)
# Included chapters, appendix, images
chapters = library.xml encoding.xml
if HAVE_FOP
spec_DATA += $(doc_sources:.xml=.ps) $(doc_sources:.xml=.pdf)
endif
# The location where the DocBook/XML files and their generated formats are installed
shelfdir = $(docdir)
if HAVE_XMLTO_TEXT
spec_DATA += $(doc_sources:.xml=.txt)
endif
# Generate DocBook/XML output formats with or without stylesheets
include $(top_srcdir)/docbook.am
if HAVE_STYLESHEETS
XMLTO_FLAGS = -m $(XSL_STYLESHEET) \
--stringparam html.stylesheet=$(STYLESHEET_SRCDIR)/xorg.css
endif
CLEANFILES = $(spec_DATA)
SUFFIXES = .xml .ps .pdf .txt .html
%.txt: %.xml $(dist_spec_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) txt $<
%.html: %.xml $(dist_spec_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) xhtml-nochunks $<
%.pdf: %.xml $(dist_spec_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop pdf $<
%.ps: %.xml $(dist_spec_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop ps $<
endif HAVE_XMLTO
endif ENABLE_SPECS

View File

@ -15,26 +15,19 @@
@SET_MAKE@
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Generate output formats for a single DocBook/XML with/without chapters
#
# 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:
# Variables set by the calling Makefile:
# shelfdir: the location where the docs/specs are installed. Typically $(docdir)
# docbook: the main DocBook/XML file, no chapters, appendix or image files
# chapters: all files pulled in by an XInclude statement and images.
#
# 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.
# This makefile is intended for Users Documentation and Functional Specifications.
# Do not use for Developer Documentation which is not installed and does not require olink.
# Refer to http://www.x.org/releases/X11R7.6/doc/xorg-docs/ReleaseNotes.html#id2584393
# for an explanation on documents classification.
#
srcdir = @srcdir@
@ -59,11 +52,15 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_XMLTO_TRUE@am__append_1 = $(doc_sources:.xml=.ps) $(doc_sources:.xml=.pdf)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TEXT_TRUE@@HAVE_XMLTO_TRUE@am__append_2 = $(doc_sources:.xml=.txt)
DIST_COMMON = $(am__dist_shelf_DATA_DIST) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/docbook.am
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@am__append_1 = $(docbook:.xml=.html)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TEXT_TRUE@@HAVE_XMLTO_TRUE@am__append_2 = $(docbook:.xml=.txt)
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@am__append_3 = $(docbook:.xml=.pdf) \
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(docbook:.xml=.ps)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@am__append_4 = $(docbook:.xml=.html.db) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(docbook:.xml=.pdf.db)
subdir = specs
DIST_COMMON = $(am__dist_spec_DATA_DIST) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@ -73,17 +70,17 @@ CONFIG_HEADER = $(top_builddir)/src/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__dist_spec_DATA_DIST = inputlib.xml library.xml encoding.xml
am__dist_shelf_DATA_DIST = inputlib.xml library.xml encoding.xml
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(specdir)" "$(DESTDIR)$(specdir)"
dist_specDATA_INSTALL = $(INSTALL_DATA)
specDATA_INSTALL = $(INSTALL_DATA)
DATA = $(dist_spec_DATA) $(spec_DATA)
am__installdirs = "$(DESTDIR)$(shelfdir)" "$(DESTDIR)$(shelfdir)"
dist_shelfDATA_INSTALL = $(INSTALL_DATA)
shelfDATA_INSTALL = $(INSTALL_DATA)
DATA = $(dist_shelf_DATA) $(shelf_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
@ -100,6 +97,7 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_CFLAGS = @BASE_CFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@ -119,6 +117,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_DOCS_FALSE = @ENABLE_DOCS_FALSE@
ENABLE_DOCS_TRUE = @ENABLE_DOCS_TRUE@
ENABLE_SPECS_FALSE = @ENABLE_SPECS_FALSE@
ENABLE_SPECS_TRUE = @ENABLE_SPECS_TRUE@
EXEEXT = @EXEEXT@
@ -139,6 +139,8 @@ HAVE_XMLTO_FALSE = @HAVE_XMLTO_FALSE@
HAVE_XMLTO_TEXT_FALSE = @HAVE_XMLTO_TEXT_FALSE@
HAVE_XMLTO_TEXT_TRUE = @HAVE_XMLTO_TEXT_TRUE@
HAVE_XMLTO_TRUE = @HAVE_XMLTO_TRUE@
HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@
HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_MANPAGES_FALSE = @INSTALL_MANPAGES_FALSE@
@ -193,6 +195,7 @@ XMALLOC_ZERO_CFLAGS = @XMALLOC_ZERO_CFLAGS@
XMLTO = @XMLTO@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XORG_SGML_PATH = @XORG_SGML_PATH@
XSLTPROC = @XSLTPROC@
XSL_STYLESHEET = @XSL_STYLESHEET@
XTMALLOC_ZERO_CFLAGS = @XTMALLOC_ZERO_CFLAGS@
ac_ct_AR = @ac_ct_AR@
@ -240,26 +243,76 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
@ENABLE_SPECS_TRUE@specdir = $(docdir)/$(subdir)
@ENABLE_SPECS_TRUE@doc_sources = inputlib.xml
@ENABLE_SPECS_TRUE@dist_spec_DATA = $(doc_sources) \
@ENABLE_SPECS_TRUE@ library.xml \
@ENABLE_SPECS_TRUE@ encoding.xml
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@spec_DATA = \
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(doc_sources:.xml=.html) \
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(am__append_1) \
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(am__append_2)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_FLAGS = -m $(XSL_STYLESHEET) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ --stringparam html.stylesheet=$(STYLESHEET_SRCDIR)/xorg.css
# Main DocBook/XML files (DOCTYPE book)
@ENABLE_SPECS_TRUE@docbook = inputlib.xml
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@CLEANFILES = $(spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@SUFFIXES = .xml .ps .pdf .txt .html
# Included chapters, appendix, images
@ENABLE_SPECS_TRUE@chapters = library.xml encoding.xml
# The location where the DocBook/XML files and their generated formats are installed
@ENABLE_SPECS_TRUE@shelfdir = $(docdir)
# DocBook/XML generated output formats to be installed
@ENABLE_SPECS_TRUE@shelf_DATA = $(am__append_1) $(am__append_2) \
@ENABLE_SPECS_TRUE@ $(am__append_3) $(am__append_4)
# DocBook/XML file with chapters, appendix and images it includes
@ENABLE_SPECS_TRUE@dist_shelf_DATA = $(docbook) $(chapters)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_SEARCHPATH_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ --searchpath "$(XORG_SGML_PATH)/X11" \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ --searchpath "$(abs_top_builddir)"
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_HTML_OLINK_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.html.xml \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ --stringparam current.docid="$(<:.xml=)"
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_HTML_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_HTML_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(XMLTO_SEARCHPATH_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(XMLTO_HTML_STYLESHEET_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(XMLTO_HTML_OLINK_FLAGS)
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_FO_IMAGEPATH_FLAGS = --stringparam img.src.path=$(abs_builddir)/
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_PDF_OLINK_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.pdf.xml \
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ --stringparam current.docid="$(<:.xml=)"
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_FO_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-fo.xsl
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@XMLTO_FO_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(XMLTO_SEARCHPATH_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(XMLTO_FO_STYLESHEET_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(XMLTO_FO_IMAGEPATH_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(XMLTO_PDF_OLINK_FLAGS)
# Generate documents cross-reference target databases
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@XSLT_SEARCHPATH_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ --path "$(XORG_SGML_PATH)/X11" \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ --path "$(abs_top_builddir)"
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@XSLT_OLINK_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ --stringparam targets.filename "$@" \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ --stringparam collect.xref.targets "only" \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ --stringparam olink.base.uri "$(@:.db=)"
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@XSLT_HTML_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(XSLT_SEARCHPATH_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(XSLT_OLINK_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ --nonet --xinclude \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@XSLT_PDF_FLAGS = \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(XSLT_SEARCHPATH_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(XSLT_OLINK_FLAGS) \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ --nonet --xinclude \
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(STYLESHEET_SRCDIR)/xorg-fo.xsl
@ENABLE_SPECS_TRUE@CLEANFILES = $(shelf_DATA)
all: all-am
.SUFFIXES:
.SUFFIXES: .xml .ps .pdf .txt .html
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/docbook.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@ -298,39 +351,39 @@ clean-libtool:
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-dist_specDATA: $(dist_spec_DATA)
install-dist_shelfDATA: $(dist_shelf_DATA)
@$(NORMAL_INSTALL)
test -z "$(specdir)" || $(mkdir_p) "$(DESTDIR)$(specdir)"
@list='$(dist_spec_DATA)'; for p in $$list; do \
test -z "$(shelfdir)" || $(mkdir_p) "$(DESTDIR)$(shelfdir)"
@list='$(dist_shelf_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(dist_specDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(specdir)/$$f'"; \
$(dist_specDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(specdir)/$$f"; \
echo " $(dist_shelfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(shelfdir)/$$f'"; \
$(dist_shelfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(shelfdir)/$$f"; \
done
uninstall-dist_specDATA:
uninstall-dist_shelfDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_spec_DATA)'; for p in $$list; do \
@list='$(dist_shelf_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(specdir)/$$f'"; \
rm -f "$(DESTDIR)$(specdir)/$$f"; \
echo " rm -f '$(DESTDIR)$(shelfdir)/$$f'"; \
rm -f "$(DESTDIR)$(shelfdir)/$$f"; \
done
install-specDATA: $(spec_DATA)
install-shelfDATA: $(shelf_DATA)
@$(NORMAL_INSTALL)
test -z "$(specdir)" || $(mkdir_p) "$(DESTDIR)$(specdir)"
@list='$(spec_DATA)'; for p in $$list; do \
test -z "$(shelfdir)" || $(mkdir_p) "$(DESTDIR)$(shelfdir)"
@list='$(shelf_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(specDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(specdir)/$$f'"; \
$(specDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(specdir)/$$f"; \
echo " $(shelfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(shelfdir)/$$f'"; \
$(shelfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(shelfdir)/$$f"; \
done
uninstall-specDATA:
uninstall-shelfDATA:
@$(NORMAL_UNINSTALL)
@list='$(spec_DATA)'; for p in $$list; do \
@list='$(shelf_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(specdir)/$$f'"; \
rm -f "$(DESTDIR)$(specdir)/$$f"; \
echo " rm -f '$(DESTDIR)$(shelfdir)/$$f'"; \
rm -f "$(DESTDIR)$(shelfdir)/$$f"; \
done
tags: TAGS
TAGS:
@ -340,6 +393,7 @@ CTAGS:
distdir: $(DISTFILES)
$(mkdir_p) $(distdir)/..
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
@ -370,7 +424,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(specdir)" "$(DESTDIR)$(specdir)"; do \
for dir in "$(DESTDIR)$(shelfdir)" "$(DESTDIR)$(shelfdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
@ -416,7 +470,7 @@ info: info-am
info-am:
install-data-am: install-dist_specDATA install-specDATA
install-data-am: install-dist_shelfDATA install-shelfDATA
install-exec-am:
@ -442,32 +496,34 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-dist_specDATA uninstall-info-am \
uninstall-specDATA
uninstall-am: uninstall-dist_shelfDATA uninstall-info-am \
uninstall-shelfDATA
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dist_specDATA \
install-data install-data-am install-dist_shelfDATA \
install-exec install-exec-am install-info install-info-am \
install-man install-specDATA install-strip installcheck \
install-man install-shelfDATA install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
uninstall-dist_specDATA uninstall-info-am uninstall-specDATA
uninstall-dist_shelfDATA uninstall-info-am uninstall-shelfDATA
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@%.html: %.xml $(chapters)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) xhtml-nochunks $<
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TEXT_TRUE@@HAVE_XMLTO_TRUE@%.txt: %.xml $(chapters)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TEXT_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) txt $<
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@%.pdf: %.xml $(chapters)
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop pdf $<
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@%.ps: %.xml $(chapters)
@ENABLE_SPECS_TRUE@@HAVE_FOP_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop ps $<
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@%.html.db: %.xml $(chapters)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(AM_V_GEN)$(XSLTPROC) $(XSLT_HTML_FLAGS) $<
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@%.pdf.db: %.xml $(chapters)
@ENABLE_SPECS_TRUE@@HAVE_STYLESHEETS_TRUE@@HAVE_XMLTO_TRUE@@HAVE_XSLTPROC_TRUE@ $(AM_V_GEN)$(XSLTPROC) $(XSLT_PDF_FLAGS) $<
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@%.txt: %.xml $(dist_spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) txt $<
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@%.html: %.xml $(dist_spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) xhtml-nochunks $<
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@%.pdf: %.xml $(dist_spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop pdf $<
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@%.ps: %.xml $(dist_spec_DATA)
@ENABLE_SPECS_TRUE@@HAVE_XMLTO_TRUE@ $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop ps $<
# Generate DocBook/XML output formats with or without stylesheets
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,4 +1,4 @@
<appendix id="input_extension_protocol_encoding">
<appendix id="Input_Extension_Protocol_Encoding">
<title>Input Extension Protocol Encoding</title>
<para>
<function>Syntactic Conventions</function>

View File

@ -1,12 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % defs SYSTEM "defs.ent"> %defs;
]>
<book id="inputlib">
<bookinfo>
<title>X11 Input Extension Protocol Specification</title>
<releaseinfo>X Version 11, Release 6.4</releaseinfo>
<title>X Input Device Extension Library</title>
<releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo>
<releaseinfo>Version 1.0</releaseinfo>
<authorgroup>
<author>
<firstname>Mark</firstname><surname>Patrick</surname>
@ -17,20 +21,12 @@
<affiliation><orgname>Hewlett-Packard</orgname></affiliation>
</othercredit>
</authorgroup>
<copyright><year>1989</year><holder>Hewlett-Packard Company and Ardent Computer</holder></copyright>
<copyright><year>1990</year><holder>Hewlett-Packard Company and Ardent Computer</holder></copyright>
<copyright><year>1991</year><holder>Hewlett-Packard Company and Ardent Computer</holder></copyright>
<copyright><year>1989</year><holder>X Consortium</holder></copyright>
<copyright><year>1990</year><holder>X Consortium</holder></copyright>
<copyright><year>1991</year><holder>X Consortium</holder></copyright>
<copyright><year>1992</year><holder>X Consortium</holder></copyright>
<releaseinfo>1.0</releaseinfo>
<productnumber>X Version 11, Release 6.4</productnumber>
<copyright><year>1989</year><year>1990</year><year>1991</year>
<holder>Hewlett-Packard Company</holder>
<holder>Ardent Computer</holder>
</copyright>
<legalnotice>
<para>
Permission to use, copy, modify, and distribute this documentation for any purpose and without
fee is hereby granted, provided that the above copyright notice and this permission notice appear
@ -38,12 +34,23 @@ in all copies. Ardent and Hewlett-Packard make no representations about the suit
purpose of the information in this document. It is provided "as is" without express or implied
warranty.
</para>
</legalnotice>
<legalnotice>
<para role="multiLicensing">
Copyright &copy; 1989, 1990, 1991, 1992 X Consortium
</para>
<para>
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:
</para>
<para>
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
</para>
<para>
THE SOFTWARE IS PROVIDED &ldquo;AS IS&rdquo;, WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
@ -53,17 +60,15 @@ 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.
</para>
<para>
Except as contained in this notice, the name of The Open Group shall not
Except as contained in this notice, the name of the X Consortium 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 X Consortium.
</para>
<para>X Window System is a trademark of X Consortium, Inc.</para>
<para>X Window System is a trademark of The Open Group.</para>
</legalnotice>
</bookinfo>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="library.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="encoding.xml"/>
</book>

File diff suppressed because it is too large Load Diff

View File

@ -64,10 +64,11 @@ libXi_la_SOURCES = \
libXi_la_LIBADD = $(XI_LIBS)
AM_CFLAGS = -I$(top_srcdir)/include \
-I$(top_srcdir)/include/X11 \
-I$(top_srcdir)/include/X11/extensions \
$(XI_CFLAGS) \
AM_CPPFLAGS = -I$(top_srcdir)/include \
-I$(top_srcdir)/include/X11 \
-I$(top_srcdir)/include/X11/extensions
AM_CFLAGS = $(XI_CFLAGS) \
$(MALLOC_ZERO_CFLAGS) \
$(CWARNFLAGS)

View File

@ -106,6 +106,7 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_CFLAGS = @BASE_CFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@ -125,6 +126,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_DOCS_FALSE = @ENABLE_DOCS_FALSE@
ENABLE_DOCS_TRUE = @ENABLE_DOCS_TRUE@
ENABLE_SPECS_FALSE = @ENABLE_SPECS_FALSE@
ENABLE_SPECS_TRUE = @ENABLE_SPECS_TRUE@
EXEEXT = @EXEEXT@
@ -145,6 +148,8 @@ HAVE_XMLTO_FALSE = @HAVE_XMLTO_FALSE@
HAVE_XMLTO_TEXT_FALSE = @HAVE_XMLTO_TEXT_FALSE@
HAVE_XMLTO_TEXT_TRUE = @HAVE_XMLTO_TEXT_TRUE@
HAVE_XMLTO_TRUE = @HAVE_XMLTO_TRUE@
HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@
HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_MANPAGES_FALSE = @INSTALL_MANPAGES_FALSE@
@ -199,6 +204,7 @@ XMALLOC_ZERO_CFLAGS = @XMALLOC_ZERO_CFLAGS@
XMLTO = @XMLTO@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XORG_SGML_PATH = @XORG_SGML_PATH@
XSLTPROC = @XSLTPROC@
XSL_STYLESHEET = @XSL_STYLESHEET@
XTMALLOC_ZERO_CFLAGS = @XTMALLOC_ZERO_CFLAGS@
ac_ct_AR = @ac_ct_AR@
@ -309,10 +315,11 @@ libXi_la_SOURCES = \
$(XI2_sources)
libXi_la_LIBADD = $(XI_LIBS)
AM_CFLAGS = -I$(top_srcdir)/include \
-I$(top_srcdir)/include/X11 \
-I$(top_srcdir)/include/X11/extensions \
$(XI_CFLAGS) \
AM_CPPFLAGS = -I$(top_srcdir)/include \
-I$(top_srcdir)/include/X11 \
-I$(top_srcdir)/include/X11/extensions
AM_CFLAGS = $(XI_CFLAGS) \
$(MALLOC_ZERO_CFLAGS) \
$(CWARNFLAGS)

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XAllowDeviceEvents - Thaw a frozen extension device.
*
*/
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -51,6 +51,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -51,6 +51,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -51,6 +51,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <stdint.h>
#include <X11/extensions/XI.h>
@ -141,14 +145,19 @@ wireToDeviceChangedEvent(xXIDeviceChangedEvent *in, XGenericEventCookie *cookie)
static int
wireToHierarchyChangedEvent(xXIHierarchyEvent *in, XGenericEventCookie *cookie);
static int
wireToRawEvent(xXIRawEvent *in, XGenericEventCookie *cookie);
wireToRawEvent(XExtDisplayInfo *info, xXIRawEvent *in, XGenericEventCookie *cookie);
static int
wireToEnterLeave(xXIEnterEvent *in, XGenericEventCookie *cookie);
static int
wireToPropertyEvent(xXIPropertyEvent *in, XGenericEventCookie *cookie);
static int
wireToTouchOwnershipEvent(xXITouchOwnershipEvent *in,
XGenericEventCookie *cookie);
static /* const */ XEvent emptyevent;
typedef Status (*core_event_to_wire)(Display*, XEvent*, xEvent*);
static /* const */ XExtensionHooks xinput_extension_hooks = {
NULL, /* create_gc */
NULL, /* copy_gc */
@ -158,7 +167,7 @@ static /* const */ XExtensionHooks xinput_extension_hooks = {
NULL, /* free_font */
XInputClose, /* close_display */
XInputWireToEvent, /* wire_to_event */
_XiEventToWire, /* event_to_wire */
(core_event_to_wire)_XiEventToWire, /* event_to_wire */
NULL, /* error */
XInputError, /* error_string */
};
@ -268,7 +277,9 @@ static XExtensionVersion versions[] = { {XI_Absent, 0, 0},
XI_Add_DevicePresenceNotify_Minor},
{XI_Present, XI_Add_DeviceProperties_Major,
XI_Add_DeviceProperties_Minor},
{XI_Present, 2, 0}
{XI_Present, 2, 0},
{XI_Present, 2, 1},
{XI_Present, 2, 2}
};
/***********************************************************************
@ -333,6 +344,43 @@ static int XInputCheckExtension(Display *dpy, XExtDisplayInfo *info)
return 1;
}
/*****************************************************************
* Compare version numbers between info and the built-in version table.
* Returns
* -1 if info's version is less than version_index's version,
* 0 if equal (or DontCheck),
* 1 if info's version is greater than version_index's version.
* Returns -2 on initialization errors which shouldn't happen if you call it
* correctly.
*/
_X_HIDDEN int
_XiCheckVersion(XExtDisplayInfo *info,
int version_index)
{
XExtensionVersion *ext;
if (versions[version_index].major_version == Dont_Check)
return 0;
if (!info->data)
return -2;
ext = ((XInputData *) info->data)->vers;
if (!ext)
return -2;
if (ext->major_version == versions[version_index].major_version &&
ext->minor_version == versions[version_index].minor_version)
return 0;
if (ext->major_version < versions[version_index].major_version ||
(ext->major_version == versions[version_index].major_version &&
ext->minor_version < versions[version_index].minor_version))
return -1;
else
return 1;
}
/***********************************************************************
*
* Check to see if the input extension is installed in the server.
@ -346,8 +394,6 @@ _XiCheckExtInit(
register int version_index,
XExtDisplayInfo *info)
{
XExtensionVersion *ext;
if (!XInputCheckExtension(dpy, info)) {
UnlockDisplay(dpy);
return (-1);
@ -363,15 +409,11 @@ _XiCheckExtInit(
_XiGetExtensionVersion(dpy, "XInputExtension", info);
}
if (versions[version_index].major_version > Dont_Check) {
ext = ((XInputData *) info->data)->vers;
if ((ext->major_version < versions[version_index].major_version) ||
((ext->major_version == versions[version_index].major_version) &&
(ext->minor_version < versions[version_index].minor_version))) {
UnlockDisplay(dpy);
return (-1);
}
if (_XiCheckVersion(info, version_index) < 0) {
UnlockDisplay(dpy);
return -1;
}
return (0);
}
@ -392,7 +434,16 @@ XInputClose(
XFree((char *)((XInputData *) info->data)->vers);
XFree((char *)info->data);
}
return XextRemoveDisplay(xinput_info, dpy);
if (!XextRemoveDisplay(xinput_info, dpy))
return 0;
if (xinput_info->ndisplays == 0) {
XextDestroyExtension(xinput_info);
xinput_info = NULL;
}
return 1;
}
static int
@ -760,7 +811,6 @@ XInputWireToEvent(
return (DONT_ENQUEUE);
else {
*re = *save;
stev = (XDeviceStateNotifyEvent *) re;
return (ENQUEUE_EVENT);
}
}
@ -788,7 +838,6 @@ XInputWireToEvent(
return (DONT_ENQUEUE);
else {
*re = *save;
kstev = (XDeviceStateNotifyEvent *) re;
return (ENQUEUE_EVENT);
}
}
@ -816,7 +865,6 @@ XInputWireToEvent(
return (DONT_ENQUEUE);
else {
*re = *save;
bstev = (XDeviceStateNotifyEvent *) re;
return (ENQUEUE_EVENT);
}
}
@ -924,6 +972,9 @@ XInputWireToCookie(
case XI_ButtonRelease:
case XI_KeyPress:
case XI_KeyRelease:
case XI_TouchBegin:
case XI_TouchUpdate:
case XI_TouchEnd:
*cookie = *(XGenericEventCookie*)save;
if (!wireToDeviceEvent((xXIDeviceEvent*)event, cookie))
{
@ -950,14 +1001,27 @@ XInputWireToCookie(
break;
}
return ENQUEUE_EVENT;
case XI_TouchOwnership:
*cookie = *(XGenericEventCookie*)save;
if (!wireToTouchOwnershipEvent((xXITouchOwnershipEvent*)event,
cookie))
{
printf("XInputWireToCookie: CONVERSION FAILURE! evtype=%d\n",
ge->evtype);
break;
}
return ENQUEUE_EVENT;
case XI_RawKeyPress:
case XI_RawKeyRelease:
case XI_RawButtonPress:
case XI_RawButtonRelease:
case XI_RawMotion:
case XI_RawTouchBegin:
case XI_RawTouchUpdate:
case XI_RawTouchEnd:
*cookie = *(XGenericEventCookie*)save;
if (!wireToRawEvent((xXIRawEvent*)event, cookie))
if (!wireToRawEvent(info, (xXIRawEvent*)event, cookie))
{
printf("XInputWireToCookie: CONVERSION FAILURE! evtype=%d\n",
ge->evtype);
@ -1012,6 +1076,55 @@ sizeDeviceEvent(int buttons_len, int valuators_len,
return len;
}
/* Return the size with added padding so next element would be
double-aligned unless the architecture is known to allow unaligned
data accesses. Not doing this can cause a bus error on
MIPS N32. */
static int
pad_to_double(int size)
{
#if !defined(__i386__) && !defined(__sh__)
if (size % sizeof(double) != 0)
size += sizeof(double) - size % sizeof(double);
#endif
return size;
}
/**
* Set structure and atoms to size in bytes of XIButtonClassInfo, its
* button state mask and labels array.
*/
static void
sizeXIButtonClassType(int num_buttons, int* structure, int* state, int* atoms)
{
int size;
int labels;
*structure = pad_to_double(sizeof(XIButtonClassInfo));
size = ((((num_buttons + 7)/8) + 3)/4);
/* Force mask alignment with longs to avoid unaligned
* access when accessing the atoms. */
*state = pad_to_double(size * 4);
labels = num_buttons * sizeof(Atom);
/* Force mask alignment with longs to avoid
* unaligned access when accessing the atoms. */
labels += ((((num_buttons + 7)/8) + 3)/4) * sizeof(Atom);
*atoms = pad_to_double(labels);
}
/**
* Set structure and keycodes to size in bytes of XIKeyClassInfo and
* its keycodes array.
*/
static void
sizeXIKeyClassType(int num_keycodes, int* structure, int* keycodes)
{
*structure = pad_to_double(sizeof(XIKeyClassInfo));
*keycodes = pad_to_double(num_keycodes * sizeof(int));
}
/**
* Return the size in bytes required to store the matching class type
* num_elements is num_buttons for XIButtonClass or num_keycodes for
@ -1023,21 +1136,26 @@ static int
sizeDeviceClassType(int type, int num_elements)
{
int l = 0;
int extra1 = 0;
int extra2 = 0;
switch(type)
{
case XIButtonClass:
l = sizeof(XIButtonClassInfo);
l += num_elements * sizeof(Atom);
/* Force mask alignment with longs to avoid
* unaligned access when accessing the atoms. */
l += ((((num_elements + 7)/8) + 3)/4) * sizeof(Atom);
sizeXIButtonClassType(num_elements, &l, &extra1, &extra2);
l += extra1 + extra2;
break;
case XIKeyClass:
l = sizeof(XIKeyClassInfo);
l += num_elements * sizeof(int);
sizeXIKeyClassType(num_elements, &l, &extra1);
l += extra1;
break;
case XIValuatorClass:
l = sizeof(XIValuatorClassInfo);
l = pad_to_double(sizeof(XIValuatorClassInfo));
break;
case XIScrollClass:
l = pad_to_double(sizeof(XIScrollClassInfo));
break;
case XITouchClass:
l = pad_to_double(sizeof(XITouchClassInfo));
break;
default:
printf("sizeDeviceClassType: unknown type %d\n", type);
@ -1098,6 +1216,9 @@ copyDeviceChangedEvent(XGenericEventCookie *in_cookie,
case XIValuatorClass:
len += sizeDeviceClassType(XIValuatorClass, 0);
break;
case XIScrollClass:
len += sizeDeviceClassType(XIScrollClass, 0);
break;
default:
printf("copyDeviceChangedEvent: unknown type %d\n",
any->type);
@ -1123,20 +1244,21 @@ copyDeviceChangedEvent(XGenericEventCookie *in_cookie,
{
case XIButtonClass:
{
int size;
int struct_size;
int state_size;
int labels_size;
XIButtonClassInfo *bin, *bout;
bin = (XIButtonClassInfo*)any;
bout = next_block(&ptr, sizeof(XIButtonClass));
sizeXIButtonClassType(bin->num_buttons, &struct_size,
&state_size, &labels_size);
bout = next_block(&ptr, struct_size);
*bout = *bin;
/* Force mask alignment with longs to avoid unaligned
* access when accessing the atoms. */
size = bout->state.mask_len/4 * sizeof(Atom);
bout->state.mask = next_block(&ptr, size);
bout->state.mask = next_block(&ptr, state_size);
memcpy(bout->state.mask, bin->state.mask,
bout->state.mask_len);
bout->labels = next_block(&ptr, bout->num_buttons * sizeof(Atom));
bout->labels = next_block(&ptr, labels_size);
memcpy(bout->labels, bin->labels, bout->num_buttons * sizeof(Atom));
out->classes[i] = (XIAnyClassInfo*)bout;
break;
@ -1144,11 +1266,15 @@ copyDeviceChangedEvent(XGenericEventCookie *in_cookie,
case XIKeyClass:
{
XIKeyClassInfo *kin, *kout;
int struct_size;
int keycodes_size;
kin = (XIKeyClassInfo*)any;
sizeXIKeyClassType(kin->num_keycodes, &struct_size,
&keycodes_size);
kout = next_block(&ptr, sizeof(XIKeyClass));
kout = next_block(&ptr, struct_size);
*kout = *kin;
kout->keycodes = next_block(&ptr, kout->num_keycodes * sizeof(int));
kout->keycodes = next_block(&ptr, keycodes_size);
memcpy(kout->keycodes, kin->keycodes, kout->num_keycodes * sizeof(int));
out->classes[i] = (XIAnyClassInfo*)kout;
break;
@ -1157,11 +1283,22 @@ copyDeviceChangedEvent(XGenericEventCookie *in_cookie,
{
XIValuatorClassInfo *vin, *vout;
vin = (XIValuatorClassInfo*)any;
vout = next_block(&ptr, sizeof(XIValuatorClass));
vout = next_block(&ptr,
sizeDeviceClassType(XIValuatorClass, 0));
*vout = *vin;
out->classes[i] = (XIAnyClassInfo*)vout;
break;
}
case XIScrollClass:
{
XIScrollClassInfo *sin, *sout;
sin = (XIScrollClassInfo*)any;
sout = next_block(&ptr,
sizeDeviceClassType(XIScrollClass, 0));
*sout = *sin;
out->classes[i] = (XIAnyClassInfo*)sout;
break;
}
}
}
@ -1244,6 +1381,22 @@ copyPropertyEvent(XGenericEventCookie *cookie_in,
return True;
}
static Bool
copyTouchOwnershipEvent(XGenericEventCookie *cookie_in,
XGenericEventCookie *cookie_out)
{
XITouchOwnershipEvent *in, *out;
in = cookie_in->data;
out = cookie_out->data = malloc(sizeof(XITouchOwnershipEvent));
if (!out)
return False;
*out = *in;
return True;
}
static Bool
copyRawEvent(XGenericEventCookie *cookie_in,
XGenericEventCookie *cookie_out)
@ -1303,6 +1456,9 @@ XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out
case XI_ButtonRelease:
case XI_KeyPress:
case XI_KeyRelease:
case XI_TouchBegin:
case XI_TouchUpdate:
case XI_TouchEnd:
ret = copyDeviceEvent(in, out);
break;
case XI_DeviceChanged:
@ -1320,6 +1476,9 @@ XInputCopyCookie(Display *dpy, XGenericEventCookie *in, XGenericEventCookie *out
case XI_PropertyEvent:
ret = copyPropertyEvent(in, out);
break;
case XI_TouchOwnership:
ret = copyTouchOwnershipEvent(in, out);
break;
case XI_RawKeyPress:
case XI_RawKeyRelease:
case XI_RawButtonPress:
@ -1414,7 +1573,8 @@ size_classes(xXIAnyInfo* from, int nclasses)
xXIAnyInfo *any_wire;
char *ptr_wire;
len = nclasses * sizeof(XIAnyClassInfo*); /* len for to->classes */
/* len for to->classes */
len = pad_to_double(nclasses * sizeof(XIAnyClassInfo*));
ptr_wire = (char*)from;
for (i = 0; i < nclasses; i++)
{
@ -1433,6 +1593,12 @@ size_classes(xXIAnyInfo* from, int nclasses)
case XIValuatorClass:
l = sizeDeviceClassType(XIValuatorClass, 0);
break;
case XIScrollClass:
l = sizeDeviceClassType(XIScrollClass, 0);
break;
case XITouchClass:
l = sizeDeviceClassType(XITouchClass, 0);
break;
}
len += l;
@ -1463,7 +1629,8 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int *nclasses)
ptr_wire = (char*)from;
ptr_lib = to->classes;
to->classes = next_block(&ptr_lib, (*nclasses) * sizeof(XIAnyClassInfo*));
to->classes = next_block(&ptr_lib,
pad_to_double((*nclasses) * sizeof(XIAnyClassInfo*)));
memset(to->classes, 0, (*nclasses) * sizeof(XIAnyClassInfo*));
len = 0; /* count wire length */
@ -1479,25 +1646,33 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int *nclasses)
XIButtonClassInfo *cls_lib;
xXIButtonInfo *cls_wire;
uint32_t *atoms;
int size;
int j;
int struct_size;
int state_size;
int labels_size;
int wire_mask_size;
cls_lib = next_block(&ptr_lib, sizeof(XIButtonClassInfo));
cls_wire = (xXIButtonInfo*)any_wire;
sizeXIButtonClassType(cls_wire->num_buttons,
&struct_size, &state_size,
&labels_size);
cls_lib = next_block(&ptr_lib, struct_size);
wire_mask_size = ((cls_wire->num_buttons + 7)/8 + 3)/4 * 4;
cls_lib->type = cls_wire->type;
cls_lib->sourceid = cls_wire->sourceid;
cls_lib->num_buttons = cls_wire->num_buttons;
size = ((((cls_wire->num_buttons + 7)/8) + 3)/4);
cls_lib->state.mask_len = size * 4;
/* Force mask alignment with longs to avoid unaligned
* access when accessing the atoms. */
cls_lib->state.mask = next_block(&ptr_lib, size * sizeof(Atom));
cls_lib->state.mask_len = state_size;
cls_lib->state.mask = next_block(&ptr_lib, state_size);
memcpy(cls_lib->state.mask, &cls_wire[1],
cls_lib->state.mask_len);
wire_mask_size);
if (state_size != wire_mask_size)
memset(&cls_lib->state.mask[wire_mask_size], 0,
state_size - wire_mask_size);
cls_lib->labels = next_block(&ptr_lib, cls_lib->num_buttons * sizeof(Atom));
atoms =(uint32_t*)((char*)&cls_wire[1] + cls_lib->state.mask_len);
cls_lib->labels = next_block(&ptr_lib, labels_size);
atoms =(uint32_t*)((char*)&cls_wire[1] + wire_mask_size);
for (j = 0; j < cls_lib->num_buttons; j++)
cls_lib->labels[j] = *atoms++;
@ -1508,15 +1683,18 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int *nclasses)
{
XIKeyClassInfo *cls_lib;
xXIKeyInfo *cls_wire;
int struct_size;
int keycodes_size;
cls_lib = next_block(&ptr_lib, sizeof(XIKeyClassInfo));
cls_wire = (xXIKeyInfo*)any_wire;
sizeXIKeyClassType(cls_wire->num_keycodes,
&struct_size, &keycodes_size);
cls_lib = next_block(&ptr_lib, struct_size);
cls_lib->type = cls_wire->type;
cls_lib->sourceid = cls_wire->sourceid;
cls_lib->num_keycodes = cls_wire->num_keycodes;
cls_lib->keycodes = next_block(&ptr_lib,
cls_lib->num_keycodes * sizeof(int));
cls_lib->keycodes = next_block(&ptr_lib, keycodes_size);
memcpy(cls_lib->keycodes, &cls_wire[1],
cls_lib->num_keycodes);
@ -1528,7 +1706,9 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int *nclasses)
XIValuatorClassInfo *cls_lib;
xXIValuatorInfo *cls_wire;
cls_lib = next_block(&ptr_lib, sizeof(XIValuatorClassInfo));
cls_lib =
next_block(&ptr_lib,
sizeDeviceClassType(XIValuatorClass, 0));
cls_wire = (xXIValuatorInfo*)any_wire;
cls_lib->type = cls_wire->type;
@ -1545,6 +1725,43 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int *nclasses)
to->classes[cls_idx++] = any_lib;
}
break;
case XIScrollClass:
{
XIScrollClassInfo *cls_lib;
xXIScrollInfo *cls_wire;
cls_lib =
next_block(&ptr_lib,
sizeDeviceClassType(XIScrollClass, 0));
cls_wire = (xXIScrollInfo*)any_wire;
cls_lib->type = cls_wire->type;
cls_lib->sourceid = cls_wire->sourceid;
cls_lib->number = cls_wire->number;
cls_lib->scroll_type= cls_wire->scroll_type;
cls_lib->flags = cls_wire->flags;
cls_lib->increment = cls_wire->increment.integral;
cls_lib->increment += (unsigned int)cls_wire->increment.frac/(double)(1ULL << 32);
to->classes[cls_idx++] = any_lib;
}
break;
case XITouchClass:
{
XITouchClassInfo *cls_lib;
xXITouchInfo *cls_wire;
cls_wire = (xXITouchInfo*)any_wire;
cls_lib = next_block(&ptr_lib, sizeof(XITouchClassInfo));
cls_lib->type = cls_wire->type;
cls_lib->sourceid = cls_wire->sourceid;
cls_lib->mode = cls_wire->mode;
cls_lib->num_touches = cls_wire->num_touches;
to->classes[cls_idx++] = any_lib;
}
break;
}
len += any_wire->length * 4;
ptr_wire += any_wire->length * 4;
@ -1624,14 +1841,13 @@ wireToHierarchyChangedEvent(xXIHierarchyEvent *in, XGenericEventCookie *cookie)
}
static int
wireToRawEvent(xXIRawEvent *in, XGenericEventCookie *cookie)
wireToRawEvent(XExtDisplayInfo *info, xXIRawEvent *in, XGenericEventCookie *cookie)
{
int len, i, bits;
FP3232 *values;
XIRawEvent *out;
void *ptr;
len = sizeof(XIRawEvent) + in->valuators_len * 4;
bits = count_bits((unsigned char*)&in[1], in->valuators_len * 4);
len += bits * sizeof(double) * 2; /* raw + normal */
@ -1649,9 +1865,14 @@ wireToRawEvent(xXIRawEvent *in, XGenericEventCookie *cookie)
out->time = in->time;
out->detail = in->detail;
out->deviceid = in->deviceid;
out->sourceid = 0; /* https://bugs.freedesktop.org/show_bug.cgi?id=34240 */
out->flags = in->flags;
/* https://bugs.freedesktop.org/show_bug.cgi?id=34240 */
if (_XiCheckVersion(info, XInput_2_2) >= 0)
out->sourceid = in->sourceid;
else
out->sourceid = 0;
out->valuators.mask_len = in->valuators_len * 4;
out->valuators.mask = next_block(&ptr, out->valuators.mask_len);
memcpy(out->valuators.mask, &in[1], out->valuators.mask_len);
@ -1739,3 +1960,28 @@ wireToPropertyEvent(xXIPropertyEvent *in, XGenericEventCookie *cookie)
return 1;
}
static int
wireToTouchOwnershipEvent(xXITouchOwnershipEvent *in,
XGenericEventCookie *cookie)
{
XITouchOwnershipEvent *out = malloc(sizeof(XITouchOwnershipEvent));
cookie->data = out;
out->type = in->type;
out->display = cookie->display;
out->extension = in->extension;
out->evtype = in->evtype;
out->send_event = ((in->type & 0x80) != 0);
out->time = in->time;
out->deviceid = in->deviceid;
out->sourceid = in->sourceid;
out->touchid = in->touchid;
out->root = in->root;
out->event = in->event;
out->child = in->child;
out->flags = in->flags;
return 1;
}

View File

@ -49,6 +49,10 @@ SOFTWARE.
* XExtToWire.c - reformat an XEvent into a wire event.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>
#include <X11/extensions/XInput.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <X11/Xlib.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XGetDeviceMotionEvents - Get the motion history of an input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -29,6 +29,9 @@ in this Software without prior written authorization from The Open Group.
* XIGetClientPointer - Get the clientPointer setting for a client.
*
*/
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/extensions/XI2proto.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XGetDeviceModifierMapping - get the modifier map of an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -50,6 +50,9 @@ SOFTWARE.
* window.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -50,6 +50,10 @@ SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XGrabDeviceBut - Grab a button on an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XGrabDeviceKey - Grab a key on an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XGrabDevice - grab an extension input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XGetDeviceFocus - Get the focus of an input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XGetSelectedExtensionEvents - return a list of currently selected events.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -22,6 +22,10 @@
*
*/
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/Xlibint.h>
#include <X11/extensions/XI2proto.h>
@ -29,10 +33,16 @@
#include <X11/extensions/extutil.h>
#include "XIint.h"
Status
XIAllowEvents(Display *dpy, int deviceid, int event_mode, Time time)
/* for GetRequest() to work */
#define X_XI2_2AllowEvents X_XIAllowEvents
static Status
_XIAllowEvents(Display *dpy, int deviceid, int event_mode, Time time,
unsigned int touchid, Window grab_window)
{
Bool have_XI22 = True;
xXIAllowEventsReq *req;
xXI2_2AllowEventsReq *req_XI22;
XExtDisplayInfo *extinfo = XInput_find_display(dpy);
@ -40,14 +50,53 @@ XIAllowEvents(Display *dpy, int deviceid, int event_mode, Time time)
if (_XiCheckExtInit(dpy, XInput_2_0, extinfo) == -1)
return (NoSuchExtension);
GetReq(XIAllowEvents, req);
if (_XiCheckExtInit(dpy, XInput_2_2, extinfo) == 0)
have_XI22 = True;
if (have_XI22)
{
GetReq(XI2_2AllowEvents, req_XI22);
req = (xXIAllowEventsReq*)req_XI22;
} else
GetReq(XIAllowEvents, req);
req->reqType = extinfo->codes->major_opcode;
req->ReqType = X_XIAllowEvents;
req->deviceid = deviceid;
req->mode = event_mode;
req->time = time;
if (have_XI22) {
req_XI22->touchid = touchid;
req_XI22->grab_window = grab_window;
}
UnlockDisplay(dpy);
SyncHandle();
return Success;
}
Status
XIAllowEvents(Display *dpy, int deviceid, int event_mode, Time time)
{
return _XIAllowEvents(dpy, deviceid, event_mode, time, 0, None);
}
Status
XIAllowTouchEvents(Display *dpy, int deviceid, unsigned int touchid,
Window grab_window, int event_mode)
{
int status;
XExtDisplayInfo *extinfo = XInput_find_display(dpy);
LockDisplay(dpy);
if (_XiCheckExtInit(dpy, XInput_2_2, extinfo) == -1)
return (NoSuchExtension);
status = _XIAllowEvents(dpy, deviceid, event_mode, CurrentTime, touchid, grab_window);
UnlockDisplay(dpy);
SyncHandle();
return status;
}

View File

@ -29,6 +29,10 @@ in this Software without prior written authorization from The Open Group.
* XIDefineCursor - Change the cursor of an extension input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/extensions/XI2proto.h>
#include <X11/Xlibint.h>

View File

@ -21,6 +21,9 @@
* DEALINGS IN THE SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/Xlibint.h>

View File

@ -22,6 +22,10 @@
*
*/
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/Xlibint.h>
#include <X11/extensions/XI2proto.h>

View File

@ -29,6 +29,9 @@ in this Software without prior written authorization from The Open Group.
* XIChangeHierarchy - change the device hierarchy, i.e. which slave
* device is attached to which master, etc.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/extensions/XI2proto.h>

View File

@ -21,6 +21,9 @@
* DEALINGS IN THE SOFTWARE.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/Xlibint.h>
@ -145,6 +148,25 @@ XIGrabFocusIn(Display *dpy, int deviceid, Window grab_window, int grab_mode,
modifiers_inout);
}
int
XIGrabTouchBegin(Display *dpy, int deviceid, Window grab_window,
Bool owner_events, XIEventMask *mask,
int num_modifiers, XIGrabModifiers *modifiers_inout)
{
XExtDisplayInfo *extinfo = XInput_find_display(dpy);
LockDisplay(dpy);
if (_XiCheckExtInit(dpy, XInput_2_2, extinfo) == -1)
return -1;
/* FIXME: allow selection of GrabMode for paired devices? */
return _XIPassiveGrabDevice(dpy, deviceid, XIGrabtypeTouchBegin, 0,
grab_window, None, XIGrabModeTouch,
GrabModeAsync, owner_events, mask,
num_modifiers, modifiers_inout);
}
static int
_XIPassiveUngrabDevice(Display* dpy, int deviceid, int grabtype, int detail,
Window grab_window, int num_modifiers, XIGrabModifiers *modifiers)
@ -208,3 +230,17 @@ XIUngrabFocusIn(Display* display, int deviceid, Window grab_window,
return _XIPassiveUngrabDevice(display, deviceid, XIGrabtypeFocusIn, 0,
grab_window, num_modifiers, modifiers);
}
int
XIUngrabTouchBegin(Display* display, int deviceid, Window grab_window,
int num_modifiers, XIGrabModifiers *modifiers)
{
XExtDisplayInfo *extinfo = XInput_find_display(display);
LockDisplay(display);
if (_XiCheckExtInit(display, XInput_2_2, extinfo) == -1)
return -1;
return _XIPassiveUngrabDevice(display, deviceid, XIGrabtypeTouchBegin, 0,
grab_window, num_modifiers, modifiers);
}

View File

@ -22,6 +22,10 @@
*
*/
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/Xlibint.h>
#include <X11/extensions/XI2proto.h>
@ -70,6 +74,8 @@ XIQueryDevice(Display *dpy, int deviceid, int *ndevices_return)
for (i = 0; i < reply.num_devices; i++)
{
int nclasses;
size_t sz;
XIDeviceInfo *lib = &info[i];
xXIDeviceInfo *wire = (xXIDeviceInfo*)ptr;
@ -77,8 +83,7 @@ XIQueryDevice(Display *dpy, int deviceid, int *ndevices_return)
lib->use = wire->use;
lib->attachment = wire->attachment;
lib->enabled = wire->enabled;
lib->num_classes = wire->num_classes;
lib->classes = (XIAnyClassInfo**)&lib[1];
nclasses = wire->num_classes;
ptr += sizeof(xXIDeviceInfo);
@ -86,8 +91,11 @@ XIQueryDevice(Display *dpy, int deviceid, int *ndevices_return)
strncpy(lib->name, ptr, wire->name_len);
ptr += ((wire->name_len + 3)/4) * 4;
lib->classes = Xmalloc(size_classes((xXIAnyInfo*)ptr, lib->num_classes));
ptr += copy_classes(lib, (xXIAnyInfo*)ptr, &lib->num_classes);
sz = size_classes((xXIAnyInfo*)ptr, nclasses);
lib->classes = Xmalloc(sz);
ptr += copy_classes(lib, (xXIAnyInfo*)ptr, &nclasses);
/* We skip over unused classes */
lib->num_classes = nclasses;
}
Xfree(buf);

View File

@ -29,6 +29,9 @@ in this Software without prior written authorization from The Open Group.
* XIQueryPointer - Query the pointer of an extension input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/extensions/XI2proto.h>

View File

@ -22,6 +22,11 @@
*
*/
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/Xlibint.h>
#include <X11/extensions/XI2proto.h>

View File

@ -30,6 +30,9 @@ in this Software without prior written authorization from the author.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/Xlibint.h>

View File

@ -32,6 +32,9 @@ in this Software without prior written authorization from The Open Group.
* Ideally, the window manager will always send a SetClientPointer request
* before the client interacts with an application.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/extensions/XI2proto.h>

View File

@ -22,6 +22,10 @@
*
*/
#if HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/Xlibint.h>
#include <X11/extensions/XI2proto.h>

View File

@ -29,6 +29,9 @@ in this Software without prior written authorization from The Open Group.
* XIWarpPointer - Warp the pointer of an extension input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdint.h>
#include <X11/extensions/XI2proto.h>

View File

@ -7,9 +7,26 @@
#define _XIINT_H_
#include <X11/extensions/XI.h>
/* inputproto 2.0 still shipped with these defined in the proto headers */
#ifndef XInput_Initial_Release
/* Indices into the versions[] array (XExtInt.c). Used as a index to
* retrieve the minimum version of XI from _XiCheckExtInit */
#define Dont_Check 0
#define XInput_Initial_Release 1
#define XInput_Add_XDeviceBell 2
#define XInput_Add_XSetDeviceValuators 3
#define XInput_Add_XChangeDeviceControl 4
#define XInput_Add_DevicePresenceNotify 5
#define XInput_Add_DeviceProperties 6
#define XInput_2_0 7
#endif
#define XInput_2_1 8
#define XInput_2_2 9
extern XExtDisplayInfo *XInput_find_display(Display *);
extern int _XiCheckExtInit(Display *, int, XExtDisplayInfo *);
extern int _XiCheckVersion(XExtDisplayInfo *info, int version_index);
extern XExtensionVersion *_XiGetExtensionVersion(Display *, _Xconst char *, XExtDisplayInfo *);
extern XExtensionVersion* _XiGetExtensionVersionRequest(Display *dpy, _Xconst char *name, int xi_opcode);

View File

@ -69,7 +69,7 @@ XListDeviceProperties(Display* dpy, XDevice* dev, int *nprops_return)
goto cleanup;
}
_XRead32(dpy, props, rep.nAtoms << 2);
_XRead32(dpy, (long*)props, rep.nAtoms << 2);
}
*nprops_return = rep.nAtoms;

View File

@ -50,6 +50,9 @@ SOFTWARE.
* available input devices.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XOpenDevice - Request the server to open and extension input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XQueryDeviceState - Query the state of an extension input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XSelectExtensionEvent - Select input from an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XSetDeviceButtonMapping - Set the button mapping of an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -50,6 +50,9 @@ SOFTWARE.
* device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XSetDeviceModifierMapping - set the modifier map of an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XSetDeviceMode - Set the mode of an extension input device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XSendExtensionEvent - send an extension event to a client.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>
@ -57,6 +60,11 @@ SOFTWARE.
#include <X11/extensions/extutil.h>
#include "XIint.h"
/* Xlib's wire_vec is defined for a single event only, libXi may return
* multiple events.
*/
typedef Status (*ext_event_to_wire)(Display*, XEvent*, xEvent**, int*);
Status
XSendExtensionEvent(
register Display *dpy,
@ -71,7 +79,7 @@ XSendExtensionEvent(
int ev_size;
xSendExtensionEventReq *req;
xEvent *ev;
register Status(**fp) (Display *, XEvent*, xEvent **, int *);
ext_event_to_wire *fp;
Status status;
XExtDisplayInfo *info = XInput_find_display(dpy);
@ -81,10 +89,10 @@ XSendExtensionEvent(
/* call through display to find proper conversion routine */
fp = &dpy->wire_vec[event->type & 0177];
fp = (ext_event_to_wire*)&dpy->wire_vec[event->type & 0177];
if (*fp == NULL)
*fp = _XiEventToWire;
status = (**fp) (dpy, event, &ev, &num_events);
status = (*fp) (dpy, event, &ev, &num_events);
if (status) {
GetReq(SendExtensionEvent, req);

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XSetDeviceFocus - Set the focus of an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XUngrabDevice - Ungrab an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XUngrabDeviceButton - Ungrab a button on an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>

View File

@ -49,6 +49,9 @@ SOFTWARE.
* XUngrabDeviceKey - Ungrab a key on an extension device.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h>