Age | Commit message (Collapse) | Author |
|
Sometimes it may be desirable to remap physical middle button
to something else and use emulation instead. The emulation is
however hardcoded to emulate physical button 2, so the emulated
button gets remapped together with the physical one. This patch
adds the Emulate3Button configuration option to allow for user
selection of the emulated button number and a configuration
like this:
Section "InputClass"
Identifier "Middle button emulation config"
MatchProduct ".... some device ..."
MatchDriver "evdev"
Option "Emulate3Buttons" "on"
Option "Emulate3Button" "9"
EndSection
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
First, it's not actually inertia, it's simply the scroll distance, yay for the
misnomer.
And it needs to be set for any device that is more fine-grained than a
mouse, especially absolute devices. For example the VirtualBox device has an
abs max of 32767, so a simple motion may have a delta of to 2000 units and
that results in 200 scroll events. That's a bit excessive.
Related to: https://bugs.freedesktop.org/show_bug.cgi?id=93617
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
It can be used to scale the resolution of a mouse to that of a 1000 DPI
mouse. This can be useful to make high resolution mice less sensitive
without turning off acceleration. The target of 1000 DPI is used as the
same default is used in libinput. If the option is not set no scaling
will be done.
https://bugs.freedesktop.org/show_bug.cgi?id=88134
Signed-off-by: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
A new property "Evdev Scrolling Distance" is created that holds three values
(vertical, horizontal and dial).
Signed-off-by: Peter De Wachter <pdewacht@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
This patch creates three new xorg.conf options, VertScrollDelta,
HorizScrollDelta and DialDelta, which adjust the sensitivity of
smooth scrolling. These options take a positive integer, default
value is 1.
Signed-off-by: Peter De Wachter <pdewacht@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
evdev tries to assign the right XI 1.x type-name based on various device
capabilities. In some cases, that fails. e.g. the Mionix Naos 5000 mouse
looks like a keyboard. And we assign a keyboard type in that case since
there are plenty of keyboards that also advertise some axes or others.
Add a new option TypeName to allow for system-wide configuration of such
devices in a quirks file.
This can also be used to address #55867
X.Org Bug 62831 <http://bugs.freedesktop.org/show_bug.cgi?id=62831>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
There is currently no mapping between XI devices and physical devices other
than what can be extracted by parsing the Xorg logfile. Add new property
"Device Node" to the driver to export the open device file.
Server 1.11 and later standardises on this property name.
The client is responsible for detecting if the device is on the same host
and converting the data into a more useful format (e.g. sysfs path).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
New properties:
"Evdev Third Button Emulation" → switch on/off
"Evdev Third Button Emulation Timeout" → timeout until event is delivered
"Evdev Third Button Emulation Button" → phys button to be emulated
"Evdev Third Button Emulation Threshold" → move threshold before emulation
is cancelled
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Benjamin Tissoires <tissoire@cena.fr>
|
|
No real reason to refer to the mouse driver's readme.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
git blames me for about half the driver now, I guess that's enough
justification ;)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Use MAN_SUBST now supplied in XORG_MANPAGE_SECTIONS
The value of MAN_SUBST is the same for all X.Org packages.
Use AC_PROG_SED now supplied by XORG_DEFAULT_OPTIONS
The existing statement can now be removed from the configuration file.
Use Automake $() for variables in Makefile.am
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
|
The AUTO feature was the default, MB emulation was on until a middle mouse
button was pressed. MB emulation however results in a delay of the first
press, causing minor annoyances to the users and being generally confusing
when the behaviour before a button press is different to after a button
pres.
Disable the feature by default instead. There's not a lot of two-button mice
around anymore though and the inability to detect two-button mice makes for
non-deterministic detection of when the emulation should be on.
Middle button emulation can be enabled with a configuration snippet:
Section "InputClass"
Identifier "middle button emulation"
MatchIsPointer "on"
Option "Emulate3Buttons" "on"
EndSection
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Daniel Stone <daniel@fooishbar.org>
|
|
Enables silent rule and use platform appropriate version of sed.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
|
Because touchscreens only use one button (see EvdevProcessKeyEvent())
EvdevMBEmuFilterEvent() never calls EvdevMBEmuEnable(..., FALSE) to
disable emulation. This results in touchscreen devices incurring a delay
of Emulate3Timeout (typically 50 ms.)
Default to MBEMU_DISABLED for touchscreen devices (unless overwritten by
Xorg.conf.)
Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Implement XSetDeviceMode request handler for evdev.
Devices with absolute axes can be switched in relative
mode or absolute mode. Devices with relative axes
can be switched only in relative mode. Other devices
return BadMatch, cause they have no valuators and
don't report motion events.
New option "Mode" force devices with absolute axes
to work in relative or absolute mode.
Need xinputproto.
Signed-off-by: Andrej Gelenberg <andrej.gelenberg@udo.edu>
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
|
|
This logic was needed in older kernels that sometimes gave error messages
after coming back from resume (2.6.27 release kernels). I haven't seen any
log files that needed this reopen timer in a long time, suggesting that need
for it is gone.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
The Xen Virtual Pointer device exports both absolute and relative axes from
the kernel device. Which coordinates are used is a run-time decision and
depends on the host-specific configuration.
0a3657d2ee62f4086e9687218cb33835ba61a0b3 broke these devices, and they are
now unusable out-of-the-box as there is no configuration to cover them.
This patch converts the IgnoreAbsoluteAxes and the IgnoreRelativeAxes
configuration options into a trinary state.
1. If unset, configure the device as normal by trying to guess the right
axis setup.
2. If set to true, ignore the specific axis type completely (except for
wheel events).
3. If set to false, explicitly 'unignore' the axis type, alwas configuring
it if it is present on the device. This setting introduces seemingly
buggy behaviour (see Bug 21832)
1. and 2. replicate the current driver behaviour.
The result of 3. is that is that if a device has absolute axes and the
options set to false, both axes will be initialized (absolute last to get
clipping right). This requires axis labelling priorty to switch from
relative first to absolute first.
Relative events are forwarded into the server through the absolute axes,
the server scales this into the device absolute range and everyone is happy.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Originally based on a patch from Daniel Stone, this commit allows for
the calibration factors to be set either from Xorg.conf or via HAL.
Previously the only way was via the properties interface.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
The X server cannot deal with devices that have both relative and absolute
axes. Evdev tries to guess wich axes to ignore given the device type and
disables absolute axes for mice and relative axes for tablets, touchscreens
and touchpad. This guess is sometimes wrong and causes exitus felis
domesticae parvulae.
Two new configuration options are provided to explicitly allow ignoring an
axis. Mouse wheel axes are exempt and will work even if relative axes are
ignored. No property, this option must be set in the configuration.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Daniel Stone <daniel@fooishbar.org>
|
|
If wheel emulation is on and the emulation button is 0, then any x/y motion
of the device is converted into wheel events. The devices becomes a
scrolling-only device.
Signed-off-by: Dima Kogan <dkogan@cds.caltech.edu>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Asbj�rn Sannes <ace@sannes.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Remove non toplevel .gitignore and .cvsignore files.
The "make distcheck correction" for $(sdkdir) probably has a better
approach using a "*-hook:" target, or possibly making $sdkdir a
configure time option that could be set with DISTCHECK_CONFIGURE_FLAGS.
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
New option: SwapAxes (boolean)
New property: EVDEV_PROP_SWAP_AXES.
Actual swapping code written by Donnie Berkholz.
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
|
|
Some devices require run-time axis calibration. We can't change the min/max
ranges once we've initialised the valuator structs though, so in-driver
run-time calibration is required.
If the property is set, the driver scales from the calibrated range to the
values reported to the X server (which then may scale to screen coordinates).
If the property is not set (i.e. zero items) no scaling is performed.
|
|
We now have the matching code in the server to set the console to RAW mode and
don't need to grab the devices anymore.
This is an updated version of e8534d47c8524ac081c2e3e6ebaabe4c6b274a18, which
was reverted in 6dc41991557fa55a9e2f5aaf0fe40c70a08d41fd.
|
|
|
|
|
|
Path was just an alias for Device anyway, so we might as well not parse it.
By now you should be using HAL anyway which fills in Device for you.
|
|
Coming back from resume may leave us with a file descriptor that can be opened
but fails on the first read (ENODEV).
In this case, try to open the device until it becomes available or until the
predefined count expires. To be safe, we cache the information from the device
and compare against it when we re-open. This way we ensure that if the
topology changes under us, we don't open a completely different device. If a
device has changed, we disable it.
Adds option "ReopenAttempts" <int>
|
|
Support the EmulateWheelTimeout option as the mouse driver does.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
|
|
Not such a good idea, CTRL+C terminates the server and other issues. Reverting
for now until a better solution is found, at least this way the driver is
usable.
See also: http://lists.freedesktop.org/archives/xorg/2008-August/038032.html
This reverts commit e8534d47c8524ac081c2e3e6ebaabe4c6b274a18.
|
|
Grabbing event devices stops in-kernel event forwarding, most notably rfkill
and the "Macintosh mouse button emulation" device. Let's not do that.
Option "GrabDevice" forces grabbing the device.
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
Fix up licence of emuMB.c, was using Red Hat instead of "The authors", but
this code wasn't contributed by RH anyway.
|
|
Devices may report middle mouse buttons even if they don't have one (PS/2
devices just don't know any better), so we can't be sure until we see the
event.
|
|
Ported from xf86-input-mouse, with a few cleanups.
|
|
|
|
|
|
|
|
update to fix bug #5167 (Linux prefers *.1x man pages in man1 subdir)
|
|
|