Commit Graph

190 Commits

Author SHA1 Message Date
Dan Nicholson d1b4beecbc xfree86: Add MatchOS InputClass entry for operating system matching
Allow InputClass sections to match against the running operating system
to narrow the application of rules. An example where this could be used
is to specify that the default input driver on Linux is evdev while it's
mouse/kbd everywhere else.

The operating system name is the same as `uname -s`, and matching is
case-insensitive.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-06-10 14:36:36 +10:00
Dan Nicholson 9b30fa9f8f xfree86: Refactor InputClass matching code
InputClassMatches was starting to get a little hairy with all the loops
over the tokenized match strings. This adds code, but makes it easier to
read and add new matches.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Jamey Sharp <jamey at minilop.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-06-10 14:34:20 +10:00
Dan Nicholson d09bc8f8e5 xfree86: Constify InputClass functions
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-06-10 14:33:43 +10:00
Mikhail Gusarov 0a4d8cbdcd Remove more superfluous if(p) checks around free(p)
This patch has been generated by the following Coccinelle semantic patch:

@@
expression E;
@@

-if(E) { free(E); }
+free(E);

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2010-06-06 20:27:18 +07:00
Keith Packard 4e9d3e4132 Revert "Add a "flags" field to DeleteInputDeviceRequest."
Peter wants to get a larger patch sequence put together and I didn't
read past the commit message to see the 'don't take this patch
please'.

This reverts commit 531ff40301.
2010-05-26 07:54:35 -07:00
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
Peter Hutterer c2d0b3b437 xfree86: store the InputAttributes in the input device.
InputAttributes largely decide which configuration values get merged from
the xorg.conf.d snippets. While they are available in the config backend,
they are not available for any other callers of NewInputDeviceRequest().

Drivers implementing driver-side hotplugging do not have access to these
attributes and cannot have xorg.conf.d snippets specific to dependent
devices. For example, the following case cannot work right now:

Section "InputClass"
        MatchProduct "Wacom"
        Option "PressCurve" "0 0 100 100"
        ...
EndSection

Section "InputClass"
        MatchProduct "Wacom"
        MatchProduct "eraser"
        Option "PressCurve" "10 10 50 50"
        ...
EndSection

The second section is not triggered, as the wacom driver cannot supply the
InputAttributes to NewInputDeviceRequest().

Add the attributes to the IDevRec and merge them into the InputInfoRec to
make them accessible in the driver. This changes the ABI for input drivers.

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 10:06:50 -07:00
Peter Hutterer b5e0f6d8f4 xfree86: fix multiple InputAttributes tag matching.
attr->tags is an array of strings (null-terminated). When matching, match
against each string instead of each [i,end] substring in the first tag.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-23 23:20:23 -07:00
Mikhail Gusarov 3f3ff971ec Replace X-allocation functions with their C89 counterparts
The only remaining X-functions used in server are XNF*, the rest is converted to
plain alloc/calloc/realloc/free/strdup.

X* functions are still exported from server and x* macros are still defined in
header file, so both ABI and API are not affected by this change.

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-13 00:22:37 +07:00
Peter Hutterer 02e86221b8 xfree86: a missing input driver is not an error.
We call NIDR on all devices that make it through the config backend.
Including some that have no driver assigned to them (/dev/input/mouse0 for
example). Those ones then simply get ignored by NIDR, but this should not be
noted as an error in the log file.

X_INFO is sufficient, and it may just prevent some bugreports.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-04-30 11:33:25 +10:00
Benjamin Tissoires a780e5b363 xf86ScaleAxis: support for high resolution devices
High resolution devices was generating integer overflow.
For instance the wacom Cintiq 21UX has an axis value up to
87000. Thus the term (dSx * (Cx - Rxlow)) is greater than
MAX_INT32.

Using 64bits integer avoids such problem.

Signed-off-by: Philippe Ribet <ribet@cena.fr>
Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-16 14:39:50 +10:00
Dan Nicholson adbbc66108 xfree86: Fix priority ordering for ignoring input classes
Commit 8736d112af changed the priority
ordering of the InputClass option merging to be "last match wins". This
fixes the handling of Option "Ignore" to follow that logic.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-04-11 07:29:23 -07:00
Peter Hutterer 70bd02f2ea xfree86: merge driver from the input class into the options.
A driver that is assigned by an input class is only present as idev->driver.
The driver itself has no access to this information once PreInit is called.
For devices that rely on chain-hotplugging (wacom), this means that for the
second device the driver information is lost and the second device cannot be
initialized through NewInputDeviceRequest. Although this could be worked
around by hardcoding the driver name in the wacom driver, having the
assigned driver in the options seems like the better solution.

This issue only manifests itself with the udev backend. With HAL, the driver
is assigned by HAL and the option is duplicated in config/hal.c.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-03-26 15:30:55 +10:00
Dan Nicholson 8736d112af xfree86: Reorder InputClass option priorities
Currently the config and InputClasses are merged together so that the
options from the config backend have the highest priority. This is bad
since it means options such as a default XKB layout set by the backend
cannot be changed by the user.

This patch changes order of precedence to be:

1. xorg.conf
2. xorg.conf.d (later files have higher priority)
3. config backend

In order to allow this ordering, the config parsing has been changed to
read the xorg.conf.d files before xorg.conf. This has the consequence
that the core device picking which looks for the first InputDevice may
not find it in xorg.conf.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-15 15:27:42 +10:00
Peter Hutterer c6d9bc092c Add tag matching to input attributes.
Tags may be a list of comma-separated strings that match against a MatchTag
InputClass section. If any of the tags specified for a device match against
the MatchTag of the section, this match is evaluated true and passed on to
the next match condition.

Tags are specified as "input.tags" (hal) or "ID_INPUT.tags" (udev), the
value of the tags is case-sensitive and require an exact match (not a
substring match).

i.e. "quirk" will not match "QUIRK", "need_quirk" or "quirk_needed".

Example configuration:
udev:
    ENV{ID_INPUT.tags}="foo,bar"

hal:
    <merge key="input.tags" type="string">foo,bar</merge>

xorg.conf:
    Section "InputClass"
            Identifier "foobar quirks"
            MatchTag "foo|foobar"
            Option "Foobar" "on"
    EndSection

Where the xorg.conf section matches against any device with the tag "foo"
or tag "foobar" set.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-02-11 19:25:49 +10:00
Dan Nicholson 27d1b86d1b xfree86: Set fnmatch pathname flag for InputClass device matching
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:34 +10:00
Dan Nicholson 9b369f7127 xfree86: Allow multiple arguments to InputClass matches
In order to keep the number of InputClass sections manageable, allow
matches to contain multiple arguments. The arguments will be separated
by the '|' character. This allows a policy to apply to multiple types of
devices. For example:

    Section "InputClass"
        Identifier "Inverted Mice"
        MatchProduct "Crazy Mouse|Silly Mouse"
        Option "InvertX" "yes"
    EndSection

This applies to the MatchProduct, MatchVendor and MatchDevicePath
entries. Currently there is no way to escape characters, so names or
patterns cannot contain '|'.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:32 +10:00
Dan Nicholson a378e361a5 xfree86: Use "Ignore" option in InputClass to skip devices
Sometimes it is desirable to skip adding specific input devices to the
server. The "Ignore" option is used similarly to Monitor sections so
that matched devices will not be added. BadIDChoice is returned to the
config backend so that it will clean up all resources.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:18 +10:00
Dan Nicholson 67bc278a51 xfree86: Make InputClass docs and comments match reality
Drivers and options specified in InputClass sections work on a "first
match wins" strategy. Let's be consistent when documenting it.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:10 +10:00
Peter Hutterer 6850ea8fb9 xfree86: replace True/False with TRUE/FALSE.
xf86Xinput.c relied on xkbsrv.h's definition of True/False which seems odd
at first and weird on second glance.

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-01-25 09:33:08 +13:00
Simon Thum 032f97808c xfree86: init pointer feedback controls from options
With InputClass support, it makes more sense to cover all
aspects of acceleration in options. Previously, one could only set the
default on the command line.

Signed-off-by: Simon Thum <simon.thum@gmx.de>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-01-11 15:30:03 +10:00
Simon Thum 1aca2d7575 whitespace fixes
Signed-off-by: Simon Thum <simon.thum@gmx.de>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-01-11 15:26:46 +10:00
Julien Cristau 435f27667f config: add libudev input-hotplug backend
Add a backend using libudev for input hotplug, and disable the hal and
dbus backends if this one is enabled.

XKB configuration happens using xkb{rules,model,layout,variant,options}
properties (case-insensitive) on the device.  We fill in InputAttributes
to allow configuration through InputClass in Xorg.

Requires udev 148 for the input_id helper and ID_INPUT* properties.

Signed-off-by: Julien Cristau <jcristau@debian.org>
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-30 19:05:44 +00:00
Peter Hutterer b8b12e41c4 xfree86: move sanity checks below option and input classes merges.
While the identifier is likely set before the input classes are merged, the
driver may not be. Hence don't check for a driver before we've completed
configuration for this device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2009-12-30 17:45:23 +00:00
Dan Nicholson 42e8c9224e xfree86: Introduce InputClass configuration
Currently Xorg uses hal's fdi files to decide what configuration options
are applied to automatically added input devices. This is sub-optimal
since it requires users to use a new and different configuration store
than xorg.conf.

The InputClass section attempts to provide a system similar to hal where
configuration can be applied to all devices with certain attributes. For
now, devices can be matched to:

* A substring of the product name via a MatchProduct entry
* A substring of the vendir name via a MatchVendor entry
* A pathname pattern of the device file via a MatchDevicePath entry
* A device type via boolean entries for MatchIsKeyboard, MatchIsPointer,
  MatchIsJoystick, MatchIsTablet, MatchIsTouchpad and MatchIsTouchscreen

See the INPUTCLASS section in xorg.conf(5) for more details.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-23 05:54:40 -08:00
Dan Nicholson 0711598dd3 config: Introduce InputAttributes in NewInputDeviceRequest
In order to give NewInputDeviceRequest more information, a new
InputAttributes type is introduced. Currently, this collects the product
and vendor name, device path, and sets booleans for attributes such as
having keys and/or a pointer. Only the HAL backend fills in the
attributes, though.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:24:13 -08:00
Hans Nieser 55f4c80a4c Xinput: allow non-integer values again for Constant- and AdaptiveDeceleration
This was initially fixed by commit 3932a84857
but then (presumably not intentionally) undone by commit
1d54479cb3 .

Signed-off-by: Hans Nieser <hnsr@xs4all.nl>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-10-27 23:34:11 -07:00
Marcin Baczyński d886008c96 Kill compilation warnings.
Signed-off-by: Marcin Baczyński <marbacz@gmail.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-10-23 09:48:01 +09:00
Peter Hutterer bd7430a32e xfree86: remove log-spamming DebugF
All input drivers use xf86PostKeyEventP indirectly now and have been since
it exists. I guess that qualifies it as tested - no need to spam the logs.

Reported-by: Felix Wenk
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2009-10-06 10:17:51 +10:00
Keith Packard ded35b7bf7 xf86Xinput.c: get DIX event queue pointer once at InitInput time
The DIX event queue is allocated before InitInput is called, so fetch
the pointer there and not randomly at other times. This avoids failing
to fetch the pointer sometimes during server regen and then smashing
memory through the stale pointer from the previous server generation.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:24 +10:00
Peter Hutterer 2bb3f0c871 xfree86: remove now unused variable
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 19:15:49 +10:00
Peter Hutterer ec0ad408ef xfree86: use SendDevicePresenceEvents instead of manual event handling.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-18 08:23:33 +10:00
Oliver McFadden b83c682e7e xf86Xinput: xf86PostButtonEventP must set POINTER_ACCELERATE for relative events.
Thanks to Peter Hutterer for spotting this bug.
2009-08-03 02:50:01 +03:00
Oliver McFadden 8da0ff2d51 xf86Xinput: Add the xf86Post(Proximity|Button|Key)EventP helper functions.
xf86PostKeyboardEvent also makes use of xf86PostKeyEventP to avoid code
duplication, and the valuator verification has been split into the
XI_VERIFY_VALUATORS macro.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-07-30 08:43:13 +10:00
Peter Hutterer 4e9b2938cd include: untangle events.h from the SDK headers.
InternalEvents shouldn't be used anywhere outside the X server itself. Split
up into events.h for opaque typedefs for the events needed by various
headers and eventstr.h for the actual struct definitions.

eventstr.h must only be included by code that requires internal events and
is not part of the SDK.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-07-30 08:43:13 +10:00
Peter Hutterer d3f6b43a24 Update to xextproto 7.0.99.1.
xextproto had Xlib client headers moved into libXext.
Protocol header files are named fooproto.h, header files with constants
foo.h or fooconst.h where foo.h was already in use for client-side headers.
2009-07-15 17:00:05 +10:00
Peter Hutterer a30fef9956 input: Add labels to buttons and valuators - ABI_XINPUT_VERSION 7
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-18 14:41:47 +10:00
Peter Hutterer b12d302df8 Input: rename DeviceIntRec->isMaster to ->type.
isMaster is not enough as long as we differ between master pointers and
keyboard. With flexible device classes, the usual checks for whether a
master device is a pointer (currently check for ->button, ->valuators or
->key) do not work as an SD may post an event through a master and mess this
check up.

Example, a device with valuators but no buttons would remove the button
class from the VCP and thus result in the
IsPointerDevice(inputInfo.pointer) == FALSE.

This will become worse in the future when new device classes are introduced
that aren't provided in the current system (e.g. a switch class).

This patch replaces isMaster with "type", one of SLAVE, MASTER_POINTER and
MASTER_KEYBOARD. All checks for dev->isMaster are replaced with an
IsMaster(dev).
2009-05-22 15:44:50 +10:00
Peter Hutterer 47a89b1cba Xi: remove DeviceIsPointerType
This approach is broken anyway. DIPT only checked for the XInput type
"MOUSE" and the only user of this is xf86ActivateDevice when it sets the
Activate/DeactivateGrab functions.
Since synaptics and wacom set their own types, evdev only sets MOUSE for,
well, mice half the devices didn't have this set correctly anyway.

Instead, ActivatePointerGrab should be merged together with
ActivateKeyboardGrab.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-20 16:22:24 +10:00
Peter Hutterer 273890924b input: reduce the number of superfluous hierarchy events
There's only two reasons for hierarchy events:
- device is added, removed, etc. In this case we want to send the event as
  it happens.
- devices are added in a XIChangeDeviceHierarchy request. In this case we
  only want one event cumulating all changes.
2009-05-16 12:20:58 +10:00
Peter Hutterer 0d947aa8e8 xfree86: fix xf86PostMotionEventP type checking
We only put internal events into the queue now, so let's check for ET_Motion
rather than the MotionNotify.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-08 14:33:23 +10:00
Peter Hutterer 44044adc92 xfree86: print a message if NIDR fails due to AutoAddDevices off.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-01 09:07:39 +10:00
Ander Conselvan de Oliveira efa31092d6 xfree86: Remove device from inputInfo.devices if ActivateDevice failed.
After the call to xf86ActivateDevice, the new device will be added to
inputInfo.devices. However, if the subsequent call to ActivateDevice
fails, the correponding InputInfoRec for the device is deleted but an
entry still remains in inputInfo.devices. This might lead to a server
crash later on (on InitAndStartDevices for instance) when the device
control proc would be called for an invalid device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-15 12:17:57 +10:00
Peter Hutterer 6b467bf879 xfree86: shut up compiler warnings - typecast to InternalEvent
Reported-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-09 20:50:32 +10:00
Simon Thum 1a71862d33 dix/xfree86: simplified velocity approximation algorithm
Replace multi-stage filtering with simple linear velocity,
tracked several instances backwards. A heuristic ensures
only approximately linear motion is considered, so velocity
remains valid in any case. Numerical stability is much
better, and nothing changes to people who didn't tune the
advanced features of the previous algorithm.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-03-20 14:48:57 +10:00
Simon Thum 7abb72c5c7 xfree86: remove obsolete code
remove a few lines which redo part of the pointer acceleration
init. Properties is the way to go for them.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-03-12 11:03:29 +10:00
Tomas Carnecky 57bed76e21 Remove dead EXTENSION_PROC_ARGS define
Signed-off-by: Tomas Carnecky <tom@dbservice.com>
2009-03-04 10:29:34 -05:00
Adam Tkac 1df6716281 xfree86: don't try to UnInit virtual devices in DIDR. (#20087)
DeleteInputDeviceRequest function doesn't handle "virtual" devices well.
TightVNC libvnc.so module to X (which makes bare Xorg VNC capable) uses such
kind of devices.

Bare Xvnc (it is something like Xvfb) simply uses AddInputDevice &
RegisterDevice functions. Xvnc uses DeleteInputDeviceRequest from Xi/stubs.c
so everything works fine (now I see that DeleteInputDeviceRequest in
Xi/stubs.c should call RemoveDevice function, shouldn't it? :) )

Situation is quite different when you use libvnc.so module. It uses same
schema as Xvnc, so it simply calls AddInputDevice & RegisterDevice. Thus
device is created correctly. When server is terminated it calls
DeleteInputDeviceRequest (now from hw/xfree86/common/xf86Xinput.c) for each
device. Here is the difference - Xvnc calls DeleteInputDeviceRequest from
Xi/stubs.c as I wrote above. Thus Xorg gets sigsegv because "VNC" devices
don't have real input driver.

X.Org Bug 20087 <http://bugs.freedesktop.org/show_bug.cgi?id=20087>

[This isn't really a fix (libVNC should behave correctly) but not crashing the
server sounds like an improvement.]
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-23 18:54:56 +10:00
Maarten Maathuis 3903e23153 XKB: ifdef XKB is dead, yet it was still present in a few places. 2009-01-29 12:42:57 +01:00
Daniel Stone 40877c6680 XKB: Make XKB mandatory
No more #ifdef XKB, because you can't disable the build, and no more
noXkbExtension either.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-22 15:06:25 +11:00