Go to file
Peter Hutterer 531ff40301 Add a "flags" field to DeleteInputDeviceRequest.
Some input drivers need to implement an internal hotplugging scheme for
dependent devices to provide multiple X devices off one kernel device file.
Such dependent devices can be added with NewInputDeviceRequest() but they are
not removed when the config backend calls DeleteInputDeviceRequest(),
leaving the original device to clean up.

Example of the wacom driver:

config/udev calls NewInputDeviceRequest("stylus")

wacom PreInit calls
        NewInputDeviceRequest("eraser")
        NewInputDeviceRequest("pad")
        NewInputDeviceRequest("cursor")
        PreInit finishes.

When the device is removed, the config backend only calls
DeleteInputDeviceRequest for "stylus". The driver needs to call
DeleteInputDeviceRequest for the dependent devices eraser, pad and cursor to
clean up properly.
However, when the server terminates, DeleteInputDeviceRequest is called for
all devices - the driver must not remove the dependent devices to avoid
double-frees. There is no method for the driver to detect why a device is
being removed, leading to elaborate guesswork and some amount of wishful
thinking.

Though the input driver's UnInit already supports flags, they are unused.
This patch uses the flags to supply information where the
DeleteInputDeviceRequest request originates from, allowing a driver to
selectively call DeleteInputDeviceRequest when necessary.

Also bumps XINPUT ABI.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-25 17:47:32 -07:00
composite Return an appropriately-typed error from dixLookupResourceByType. 2010-05-19 12:32:48 -07:00
config Add a "flags" field to DeleteInputDeviceRequest. 2010-05-25 17:47:32 -07:00
damageext Add typed resource-lookup errors for non-core resource types. 2010-05-19 12:32:48 -07:00
dbe Add typed resource-lookup errors for non-core resource types. 2010-05-19 12:32:48 -07:00
dix Add a "flags" field to DeleteInputDeviceRequest. 2010-05-25 17:47:32 -07:00
doc Xserver(1) man page updates 2010-05-21 09:44:26 -07:00
exa EXA: Wrap Glyphs even without Composite acceleration. 2010-05-20 07:48:51 -07:00
fb Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
glx Set event sequence number in WriteEventsToClient instead of at callers. 2010-05-19 12:32:34 -07:00
hw Add a "flags" field to DeleteInputDeviceRequest. 2010-05-25 17:47:32 -07:00
include Add a "flags" field to DeleteInputDeviceRequest. 2010-05-25 17:47:32 -07:00
m4 dolt: add Cygwin to supported platforms 2009-10-13 20:30:22 -07:00
mi midispcur: Construct Picture objects lazily in case Render is disabled. 2010-05-25 09:05:37 -07:00
miext Define GCAllBits as the union of all valid CreateGC masks. 2010-05-13 17:14:07 -07:00
os Make WriteEventsToClient/WriteToClient no-op on fake or dead clients. 2010-05-19 12:32:34 -07:00
randr Add typed resource-lookup errors for non-core resource types. 2010-05-19 12:32:48 -07:00
record Add typed resource-lookup errors for non-core resource types. 2010-05-19 12:32:48 -07:00
render Merge remote branch 'vignatti/animcursor-state-fix' 2010-05-19 22:27:20 -07:00
test dix: add helper functions to duplicate and free InputAttributes. 2010-05-25 10:06:11 -07:00
Xext Add typed resource-lookup errors for non-core resource types. 2010-05-19 12:32:48 -07:00
xfixes xfixes: Remove the invisible cursor sprite, using NullCursor instead. 2010-05-24 22:15:14 -07:00
Xi Add a "flags" field to DeleteInputDeviceRequest. 2010-05-25 17:47:32 -07:00
xkb Set event sequence number in WriteEventsToClient instead of at callers. 2010-05-19 12:32:34 -07:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac Show Xserver release/version date in DIX & DDX docs 2010-05-20 11:31:13 -07:00
COPYING Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
cpprules.in xfree86: Set a saner search path for xorg.conf.d 2010-04-08 15:21:01 +10:00
Makefile.am Fix relink targets for silent rules 2010-03-22 00:45:52 -05:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in xorg-server.pc Requires: xproto >= 7.0.17 2010-05-22 20:12:41 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage