aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOliver McFadden <oliver.mcfadden@nokia.com>2010-02-25 07:11:21 +0200
committerPeter Hutterer <peter.hutterer@who-t.net>2010-02-25 16:07:39 +1000
commit801778c3106fc7e409369b4500253a38be6a5795 (patch)
treed8ca06c6962895e1bc8fd1c67985813d7e032309 /src
parentman: fix man page formatting for option EmulateWheel. (diff)
downloadxf86-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.c6
-rw-r--r--src/evdev.c14
-rw-r--r--src/evdev.h14
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