diff options
author | Oliver McFadden <oliver.mcfadden@nokia.com> | 2010-02-25 07:11:21 +0200 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2010-02-25 16:07:39 +1000 |
commit | 801778c3106fc7e409369b4500253a38be6a5795 (patch) | |
tree | d8ca06c6962895e1bc8fd1c67985813d7e032309 /src | |
parent | man: fix man page formatting for option EmulateWheel. (diff) | |
download | xf86-input-evdev-801778c3106fc7e409369b4500253a38be6a5795.tar.gz xf86-input-evdev-801778c3106fc7e409369b4500253a38be6a5795.tar.bz2 xf86-input-evdev-801778c3106fc7e409369b4500253a38be6a5795.zip |
emuMB: default to disabled mouse button emulation for touchscreens.
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>
Diffstat (limited to 'src')
-rw-r--r-- | src/emuMB.c | 6 | ||||
-rw-r--r-- | src/evdev.c | 14 | ||||
-rw-r--r-- | src/evdev.h | 14 |
3 files changed, 19 insertions, 15 deletions
diff --git a/src/emuMB.c b/src/emuMB.c index 199c0d7..113a708 100644 --- a/src/emuMB.c +++ b/src/emuMB.c @@ -309,7 +309,11 @@ void EvdevMBEmuPreInit(InputInfoPtr pInfo) { EvdevPtr pEvdev = (EvdevPtr)pInfo->private; - pEvdev->emulateMB.enabled = MBEMU_AUTO; + + if (pEvdev->flags & EVDEV_TOUCHSCREEN) + pEvdev->emulateMB.enabled = MBEMU_DISABLED; + else + pEvdev->emulateMB.enabled = MBEMU_AUTO; if (xf86FindOption(pInfo->options, "Emulate3Buttons")) { diff --git a/src/evdev.c b/src/evdev.c index 58ffcea..3051462 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -81,20 +81,6 @@ #define ArrayLength(a) (sizeof(a) / (sizeof((a)[0]))) -/* evdev flags */ -#define EVDEV_KEYBOARD_EVENTS (1 << 0) -#define EVDEV_BUTTON_EVENTS (1 << 1) -#define EVDEV_RELATIVE_EVENTS (1 << 2) -#define EVDEV_ABSOLUTE_EVENTS (1 << 3) -#define EVDEV_TOUCHPAD (1 << 4) -#define EVDEV_INITIALIZED (1 << 5) /* WheelInit etc. called already? */ -#define EVDEV_TOUCHSCREEN (1 << 6) -#define EVDEV_CALIBRATED (1 << 7) /* run-time calibrated? */ -#define EVDEV_TABLET (1 << 8) /* device looks like a tablet? */ -#define EVDEV_UNIGNORE_ABSOLUTE (1 << 9) /* explicitly unignore abs axes */ -#define EVDEV_UNIGNORE_RELATIVE (1 << 10) /* explicitly unignore rel axes */ -#define EVDEV_RELATIVE_MODE (1 << 11) /* Force relative events for devices with absolute axes */ - #define MIN_KEYCODE 8 #define GLYPHS_PER_KEY 2 #define AltMask Mod1Mask diff --git a/src/evdev.h b/src/evdev.h index 95d00db..1133985 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -57,6 +57,20 @@ #define EVDEV_MAXBUTTONS 32 #define EVDEV_MAXQUEUE 32 +/* evdev flags */ +#define EVDEV_KEYBOARD_EVENTS (1 << 0) +#define EVDEV_BUTTON_EVENTS (1 << 1) +#define EVDEV_RELATIVE_EVENTS (1 << 2) +#define EVDEV_ABSOLUTE_EVENTS (1 << 3) +#define EVDEV_TOUCHPAD (1 << 4) +#define EVDEV_INITIALIZED (1 << 5) /* WheelInit etc. called already? */ +#define EVDEV_TOUCHSCREEN (1 << 6) +#define EVDEV_CALIBRATED (1 << 7) /* run-time calibrated? */ +#define EVDEV_TABLET (1 << 8) /* device looks like a tablet? */ +#define EVDEV_UNIGNORE_ABSOLUTE (1 << 9) /* explicitly unignore abs axes */ +#define EVDEV_UNIGNORE_RELATIVE (1 << 10) /* explicitly unignore rel axes */ +#define EVDEV_RELATIVE_MODE (1 << 11) /* Force relative events for devices with absolute axes */ + #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3 #define HAVE_PROPERTIES 1 #endif |