From d5e4660ff66b2e8aca05aef4776ee622e0df18b9 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 11 Feb 2014 09:19:44 +1000 Subject: synaptics: add tests for the new TouchpadOff property value https://bugs.freedesktop.org/show_bug.cgi?id=73158 Signed-off-by: Peter Hutterer --- ...aptics-TouchPad-Clickpad.one-finger-move.events | 416 +++++++++++++++++++++ ...naptics-TouchPad-Clickpad.one-finger-tap.events | 141 +++++++ tests/input/synaptics.cpp | 156 ++++++++ 3 files changed, 713 insertions(+) create mode 100644 recordings/touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-move.events create mode 100644 recordings/touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-tap.events diff --git a/recordings/touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-move.events b/recordings/touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-move.events new file mode 100644 index 0000000..d9a6788 --- /dev/null +++ b/recordings/touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-move.events @@ -0,0 +1,416 @@ +# EVEMU 1.2 +# Input device name: "SynPS/2 Synaptics TouchPad" +# Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1 +# Supported events: +# Event type 0 (EV_SYN) +# Event code 0 (SYN_REPORT) +# Event code 1 (SYN_CONFIG) +# Event code 3 (SYN_DROPPED) +# Event type 1 (EV_KEY) +# Event code 272 (BTN_LEFT) +# Event code 325 (BTN_TOOL_FINGER) +# Event code 328 (BTN_TOOL_QUINTTAP) +# Event code 330 (BTN_TOUCH) +# Event code 333 (BTN_TOOL_DOUBLETAP) +# Event code 334 (BTN_TOOL_TRIPLETAP) +# Event code 335 (BTN_TOOL_QUADTAP) +# Event type 3 (EV_ABS) +# Event code 0 (ABS_X) +# Value 5627 +# Min 1472 +# Max 5472 +# Fuzz 0 +# Flat 0 +# Resolution 75 +# Event code 1 (ABS_Y) +# Value 2782 +# Min 1408 +# Max 4448 +# Fuzz 0 +# Flat 0 +# Resolution 129 +# Event code 24 (ABS_PRESSURE) +# Value 0 +# Min 0 +# Max 255 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Event code 28 (ABS_TOOL_WIDTH) +# Value 0 +# Min 0 +# Max 15 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Event code 47 (ABS_MT_SLOT) +# Value 0 +# Min 0 +# Max 1 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Event code 53 (ABS_MT_POSITION_X) +# Value 0 +# Min 1472 +# Max 5472 +# Fuzz 8 +# Flat 0 +# Resolution 75 +# Event code 54 (ABS_MT_POSITION_Y) +# Value 0 +# Min 1408 +# Max 4448 +# Fuzz 8 +# Flat 0 +# Resolution 129 +# Event code 57 (ABS_MT_TRACKING_ID) +# Value 0 +# Min 0 +# Max 65535 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Event code 58 (ABS_MT_PRESSURE) +# Value 0 +# Min 0 +# Max 255 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Properties: +# Property type 0 (INPUT_PROP_POINTER) +# Property type 2 (INPUT_PROP_BUTTONPAD) +N: SynPS/2 Synaptics TouchPad +I: 0011 0002 0007 01b1 +P: 05 00 00 00 00 00 00 00 +B: 00 0b 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 01 00 00 00 00 00 +B: 01 20 e5 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 02 00 00 00 00 00 00 00 00 +B: 03 03 00 00 11 00 80 60 06 +B: 04 00 00 00 00 00 00 00 00 +B: 05 00 00 00 00 00 00 00 00 +B: 11 00 00 00 00 00 00 00 00 +B: 12 00 00 00 00 00 00 00 00 +B: 15 00 00 00 00 00 00 00 00 +B: 15 00 00 00 00 00 00 00 00 +A: 00 1472 5472 0 0 75 +A: 01 1408 4448 0 0 129 +A: 18 0 255 0 0 0 +A: 1c 0 15 0 0 0 +A: 2f 0 1 0 0 0 +A: 35 1472 5472 8 0 75 +A: 36 1408 4448 8 0 129 +A: 39 0 65535 0 0 0 +A: 3a 0 255 0 0 0 +################################ +# Waiting for events # +################################ +E: 0.000000 0003 0039 1054 # EV_ABS / ABS_MT_TRACKING_ID 1054 +E: 0.000000 0003 0035 2265 # EV_ABS / ABS_MT_POSITION_X 2265 +E: 0.000000 0003 0036 2483 # EV_ABS / ABS_MT_POSITION_Y 2483 +E: 0.000000 0003 003a 0051 # EV_ABS / ABS_MT_PRESSURE 51 +E: 0.000000 0001 014a 0001 # EV_KEY / BTN_TOUCH 1 +E: 0.000000 0003 0000 2265 # EV_ABS / ABS_X 2265 +E: 0.000000 0003 0001 2483 # EV_ABS / ABS_Y 2483 +E: 0.000000 0003 0018 0051 # EV_ABS / ABS_PRESSURE 51 +E: 0.000000 0001 0145 0001 # EV_KEY / BTN_TOOL_FINGER 1 +E: 0.000000 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.011717 0003 0035 2251 # EV_ABS / ABS_MT_POSITION_X 2251 +E: 0.011717 0003 0036 2496 # EV_ABS / ABS_MT_POSITION_Y 2496 +E: 0.011717 0003 003a 0055 # EV_ABS / ABS_MT_PRESSURE 55 +E: 0.011717 0003 0000 2258 # EV_ABS / ABS_X 2258 +E: 0.011717 0003 0001 2489 # EV_ABS / ABS_Y 2489 +E: 0.011717 0003 0018 0055 # EV_ABS / ABS_PRESSURE 55 +E: 0.011717 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.024017 0003 0035 2273 # EV_ABS / ABS_MT_POSITION_X 2273 +E: 0.024017 0003 0036 2495 # EV_ABS / ABS_MT_POSITION_Y 2495 +E: 0.024017 0003 003a 0058 # EV_ABS / ABS_MT_PRESSURE 58 +E: 0.024017 0003 0000 2265 # EV_ABS / ABS_X 2265 +E: 0.024017 0003 0001 2490 # EV_ABS / ABS_Y 2490 +E: 0.024017 0003 0018 0058 # EV_ABS / ABS_PRESSURE 58 +E: 0.024017 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.036570 0003 0035 2259 # EV_ABS / ABS_MT_POSITION_X 2259 +E: 0.036570 0003 0036 2500 # EV_ABS / ABS_MT_POSITION_Y 2500 +E: 0.036570 0003 003a 0057 # EV_ABS / ABS_MT_PRESSURE 57 +E: 0.036570 0003 0000 2263 # EV_ABS / ABS_X 2263 +E: 0.036570 0003 0001 2495 # EV_ABS / ABS_Y 2495 +E: 0.036570 0003 0018 0057 # EV_ABS / ABS_PRESSURE 57 +E: 0.036570 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.049915 0003 0035 2271 # EV_ABS / ABS_MT_POSITION_X 2271 +E: 0.049915 0003 0036 2512 # EV_ABS / ABS_MT_POSITION_Y 2512 +E: 0.049915 0003 003a 0059 # EV_ABS / ABS_MT_PRESSURE 59 +E: 0.049915 0003 0000 2267 # EV_ABS / ABS_X 2267 +E: 0.049915 0003 0001 2512 # EV_ABS / ABS_Y 2512 +E: 0.049915 0003 0018 0059 # EV_ABS / ABS_PRESSURE 59 +E: 0.049915 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.061661 0003 0035 2290 # EV_ABS / ABS_MT_POSITION_X 2290 +E: 0.061661 0003 0036 2526 # EV_ABS / ABS_MT_POSITION_Y 2526 +E: 0.061661 0003 003a 0060 # EV_ABS / ABS_MT_PRESSURE 60 +E: 0.061661 0003 0000 2290 # EV_ABS / ABS_X 2290 +E: 0.061661 0003 0001 2519 # EV_ABS / ABS_Y 2519 +E: 0.061661 0003 0018 0060 # EV_ABS / ABS_PRESSURE 60 +E: 0.061661 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.074062 0003 0035 2349 # EV_ABS / ABS_MT_POSITION_X 2349 +E: 0.074062 0003 0036 2551 # EV_ABS / ABS_MT_POSITION_Y 2551 +E: 0.074062 0003 003a 0063 # EV_ABS / ABS_MT_PRESSURE 63 +E: 0.074062 0003 0000 2349 # EV_ABS / ABS_X 2349 +E: 0.074062 0003 0001 2551 # EV_ABS / ABS_Y 2551 +E: 0.074062 0003 0018 0063 # EV_ABS / ABS_PRESSURE 63 +E: 0.074062 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.086796 0003 0035 2354 # EV_ABS / ABS_MT_POSITION_X 2354 +E: 0.086796 0003 0036 2574 # EV_ABS / ABS_MT_POSITION_Y 2574 +E: 0.086796 0003 003a 0064 # EV_ABS / ABS_MT_PRESSURE 64 +E: 0.086796 0003 0000 2350 # EV_ABS / ABS_X 2350 +E: 0.086796 0003 0001 2574 # EV_ABS / ABS_Y 2574 +E: 0.086796 0003 0018 0064 # EV_ABS / ABS_PRESSURE 64 +E: 0.086796 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.098603 0003 0035 2401 # EV_ABS / ABS_MT_POSITION_X 2401 +E: 0.098603 0003 0036 2599 # EV_ABS / ABS_MT_POSITION_Y 2599 +E: 0.098603 0003 003a 0063 # EV_ABS / ABS_MT_PRESSURE 63 +E: 0.098603 0003 0000 2401 # EV_ABS / ABS_X 2401 +E: 0.098603 0003 0001 2599 # EV_ABS / ABS_Y 2599 +E: 0.098603 0003 0018 0063 # EV_ABS / ABS_PRESSURE 63 +E: 0.098603 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.111545 0003 0035 2445 # EV_ABS / ABS_MT_POSITION_X 2445 +E: 0.111545 0003 0036 2607 # EV_ABS / ABS_MT_POSITION_Y 2607 +E: 0.111545 0003 0000 2445 # EV_ABS / ABS_X 2445 +E: 0.111545 0003 0001 2603 # EV_ABS / ABS_Y 2603 +E: 0.111545 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.123717 0003 0035 2496 # EV_ABS / ABS_MT_POSITION_X 2496 +E: 0.123717 0003 0036 2633 # EV_ABS / ABS_MT_POSITION_Y 2633 +E: 0.123717 0003 003a 0062 # EV_ABS / ABS_MT_PRESSURE 62 +E: 0.123717 0003 0000 2496 # EV_ABS / ABS_X 2496 +E: 0.123717 0003 0001 2633 # EV_ABS / ABS_Y 2633 +E: 0.123717 0003 0018 0062 # EV_ABS / ABS_PRESSURE 62 +E: 0.123717 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.135792 0003 0035 2568 # EV_ABS / ABS_MT_POSITION_X 2568 +E: 0.135792 0003 003a 0061 # EV_ABS / ABS_MT_PRESSURE 61 +E: 0.135792 0003 0000 2568 # EV_ABS / ABS_X 2568 +E: 0.135792 0003 0018 0061 # EV_ABS / ABS_PRESSURE 61 +E: 0.135792 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.149196 0003 0035 2637 # EV_ABS / ABS_MT_POSITION_X 2637 +E: 0.149196 0003 0036 2679 # EV_ABS / ABS_MT_POSITION_Y 2679 +E: 0.149196 0003 003a 0062 # EV_ABS / ABS_MT_PRESSURE 62 +E: 0.149196 0003 0000 2637 # EV_ABS / ABS_X 2637 +E: 0.149196 0003 0001 2679 # EV_ABS / ABS_Y 2679 +E: 0.149196 0003 0018 0062 # EV_ABS / ABS_PRESSURE 62 +E: 0.149196 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.161378 0003 0035 2693 # EV_ABS / ABS_MT_POSITION_X 2693 +E: 0.161378 0003 0036 2695 # EV_ABS / ABS_MT_POSITION_Y 2695 +E: 0.161378 0003 0000 2693 # EV_ABS / ABS_X 2693 +E: 0.161378 0003 0001 2695 # EV_ABS / ABS_Y 2695 +E: 0.161378 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.174600 0003 0035 2748 # EV_ABS / ABS_MT_POSITION_X 2748 +E: 0.174600 0003 0036 2713 # EV_ABS / ABS_MT_POSITION_Y 2713 +E: 0.174600 0003 0000 2748 # EV_ABS / ABS_X 2748 +E: 0.174600 0003 0001 2713 # EV_ABS / ABS_Y 2713 +E: 0.174600 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.186051 0003 0035 2829 # EV_ABS / ABS_MT_POSITION_X 2829 +E: 0.186051 0003 0036 2751 # EV_ABS / ABS_MT_POSITION_Y 2751 +E: 0.186051 0003 0000 2829 # EV_ABS / ABS_X 2829 +E: 0.186051 0003 0001 2751 # EV_ABS / ABS_Y 2751 +E: 0.186051 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.198260 0003 0035 2874 # EV_ABS / ABS_MT_POSITION_X 2874 +E: 0.198260 0003 0036 2778 # EV_ABS / ABS_MT_POSITION_Y 2778 +E: 0.198260 0003 0000 2874 # EV_ABS / ABS_X 2874 +E: 0.198260 0003 0001 2778 # EV_ABS / ABS_Y 2778 +E: 0.198260 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.210356 0003 0035 2929 # EV_ABS / ABS_MT_POSITION_X 2929 +E: 0.210356 0003 0036 2783 # EV_ABS / ABS_MT_POSITION_Y 2783 +E: 0.210356 0003 0000 2929 # EV_ABS / ABS_X 2929 +E: 0.210356 0003 0001 2779 # EV_ABS / ABS_Y 2779 +E: 0.210356 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.222648 0003 0035 2967 # EV_ABS / ABS_MT_POSITION_X 2967 +E: 0.222648 0003 0036 2796 # EV_ABS / ABS_MT_POSITION_Y 2796 +E: 0.222648 0003 003a 0063 # EV_ABS / ABS_MT_PRESSURE 63 +E: 0.222648 0003 0000 2967 # EV_ABS / ABS_X 2967 +E: 0.222648 0003 0001 2796 # EV_ABS / ABS_Y 2796 +E: 0.222648 0003 0018 0063 # EV_ABS / ABS_PRESSURE 63 +E: 0.222648 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.236153 0003 0035 2984 # EV_ABS / ABS_MT_POSITION_X 2984 +E: 0.236153 0003 0036 2805 # EV_ABS / ABS_MT_POSITION_Y 2805 +E: 0.236153 0003 003a 0064 # EV_ABS / ABS_MT_PRESSURE 64 +E: 0.236153 0003 0000 2984 # EV_ABS / ABS_X 2984 +E: 0.236153 0003 0001 2800 # EV_ABS / ABS_Y 2800 +E: 0.236153 0003 0018 0064 # EV_ABS / ABS_PRESSURE 64 +E: 0.236153 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.247761 0003 0035 3027 # EV_ABS / ABS_MT_POSITION_X 3027 +E: 0.247761 0003 0036 2816 # EV_ABS / ABS_MT_POSITION_Y 2816 +E: 0.247761 0003 0000 3027 # EV_ABS / ABS_X 3027 +E: 0.247761 0003 0001 2816 # EV_ABS / ABS_Y 2816 +E: 0.247761 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.259872 0003 0035 3062 # EV_ABS / ABS_MT_POSITION_X 3062 +E: 0.259872 0003 0036 2834 # EV_ABS / ABS_MT_POSITION_Y 2834 +E: 0.259872 0003 0000 3062 # EV_ABS / ABS_X 3062 +E: 0.259872 0003 0001 2834 # EV_ABS / ABS_Y 2834 +E: 0.259872 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.272744 0003 0035 3121 # EV_ABS / ABS_MT_POSITION_X 3121 +E: 0.272744 0003 003a 0065 # EV_ABS / ABS_MT_PRESSURE 65 +E: 0.272744 0003 0000 3121 # EV_ABS / ABS_X 3121 +E: 0.272744 0003 0018 0065 # EV_ABS / ABS_PRESSURE 65 +E: 0.272744 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.284620 0003 0035 3159 # EV_ABS / ABS_MT_POSITION_X 3159 +E: 0.284620 0003 0036 2844 # EV_ABS / ABS_MT_POSITION_Y 2844 +E: 0.284620 0003 003a 0064 # EV_ABS / ABS_MT_PRESSURE 64 +E: 0.284620 0003 0000 3159 # EV_ABS / ABS_X 3159 +E: 0.284620 0003 0001 2839 # EV_ABS / ABS_Y 2839 +E: 0.284620 0003 0018 0064 # EV_ABS / ABS_PRESSURE 64 +E: 0.284620 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.297860 0003 0035 3202 # EV_ABS / ABS_MT_POSITION_X 3202 +E: 0.297860 0003 0036 2846 # EV_ABS / ABS_MT_POSITION_Y 2846 +E: 0.297860 0003 003a 0065 # EV_ABS / ABS_MT_PRESSURE 65 +E: 0.297860 0003 0000 3202 # EV_ABS / ABS_X 3202 +E: 0.297860 0003 0001 2840 # EV_ABS / ABS_Y 2840 +E: 0.297860 0003 0018 0065 # EV_ABS / ABS_PRESSURE 65 +E: 0.297860 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.309897 0003 0035 3236 # EV_ABS / ABS_MT_POSITION_X 3236 +E: 0.309897 0003 0036 2853 # EV_ABS / ABS_MT_POSITION_Y 2853 +E: 0.309897 0003 0000 3236 # EV_ABS / ABS_X 3236 +E: 0.309897 0003 0001 2846 # EV_ABS / ABS_Y 2846 +E: 0.309897 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.321818 0003 0035 3258 # EV_ABS / ABS_MT_POSITION_X 3258 +E: 0.321818 0003 0036 2854 # EV_ABS / ABS_MT_POSITION_Y 2854 +E: 0.321818 0003 0000 3258 # EV_ABS / ABS_X 3258 +E: 0.321818 0003 0001 2850 # EV_ABS / ABS_Y 2850 +E: 0.321818 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.334138 0003 0035 3270 # EV_ABS / ABS_MT_POSITION_X 3270 +E: 0.334138 0003 0036 2858 # EV_ABS / ABS_MT_POSITION_Y 2858 +E: 0.334138 0003 003a 0066 # EV_ABS / ABS_MT_PRESSURE 66 +E: 0.334138 0003 0000 3264 # EV_ABS / ABS_X 3264 +E: 0.334138 0003 0001 2854 # EV_ABS / ABS_Y 2854 +E: 0.334138 0003 0018 0066 # EV_ABS / ABS_PRESSURE 66 +E: 0.334138 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.347134 0003 0035 3270 # EV_ABS / ABS_MT_POSITION_X 3270 +E: 0.347134 0003 0036 2858 # EV_ABS / ABS_MT_POSITION_Y 2858 +E: 0.347134 0003 0000 3265 # EV_ABS / ABS_X 3265 +E: 0.347134 0003 0001 2855 # EV_ABS / ABS_Y 2855 +E: 0.347134 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.359312 0003 0035 3275 # EV_ABS / ABS_MT_POSITION_X 3275 +E: 0.359312 0003 0036 2860 # EV_ABS / ABS_MT_POSITION_Y 2860 +E: 0.359312 0003 0000 3270 # EV_ABS / ABS_X 3270 +E: 0.359312 0003 0001 2856 # EV_ABS / ABS_Y 2856 +E: 0.359312 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.371707 0003 0035 3277 # EV_ABS / ABS_MT_POSITION_X 3277 +E: 0.371707 0003 0000 3271 # EV_ABS / ABS_X 3271 +E: 0.371707 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.384232 0003 0035 3324 # EV_ABS / ABS_MT_POSITION_X 3324 +E: 0.384232 0003 0036 2869 # EV_ABS / ABS_MT_POSITION_Y 2869 +E: 0.384232 0003 003a 0068 # EV_ABS / ABS_MT_PRESSURE 68 +E: 0.384232 0003 0000 3324 # EV_ABS / ABS_X 3324 +E: 0.384232 0003 0001 2862 # EV_ABS / ABS_Y 2862 +E: 0.384232 0003 0018 0068 # EV_ABS / ABS_PRESSURE 68 +E: 0.384232 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.396285 0003 0035 3364 # EV_ABS / ABS_MT_POSITION_X 3364 +E: 0.396285 0003 0036 2869 # EV_ABS / ABS_MT_POSITION_Y 2869 +E: 0.396285 0003 003a 0066 # EV_ABS / ABS_MT_PRESSURE 66 +E: 0.396285 0003 0000 3364 # EV_ABS / ABS_X 3364 +E: 0.396285 0003 0001 2863 # EV_ABS / ABS_Y 2863 +E: 0.396285 0003 0018 0066 # EV_ABS / ABS_PRESSURE 66 +E: 0.396285 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.409547 0003 0035 3418 # EV_ABS / ABS_MT_POSITION_X 3418 +E: 0.409547 0003 0036 2870 # EV_ABS / ABS_MT_POSITION_Y 2870 +E: 0.409547 0003 003a 0065 # EV_ABS / ABS_MT_PRESSURE 65 +E: 0.409547 0003 0000 3418 # EV_ABS / ABS_X 3418 +E: 0.409547 0003 0001 2864 # EV_ABS / ABS_Y 2864 +E: 0.409547 0003 0018 0065 # EV_ABS / ABS_PRESSURE 65 +E: 0.409547 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.421667 0003 0035 3452 # EV_ABS / ABS_MT_POSITION_X 3452 +E: 0.421667 0003 0036 2873 # EV_ABS / ABS_MT_POSITION_Y 2873 +E: 0.421667 0003 003a 0066 # EV_ABS / ABS_MT_PRESSURE 66 +E: 0.421667 0003 0000 3452 # EV_ABS / ABS_X 3452 +E: 0.421667 0003 0001 2868 # EV_ABS / ABS_Y 2868 +E: 0.421667 0003 0018 0066 # EV_ABS / ABS_PRESSURE 66 +E: 0.421667 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.434342 0003 0035 3472 # EV_ABS / ABS_MT_POSITION_X 3472 +E: 0.434342 0003 0036 2877 # EV_ABS / ABS_MT_POSITION_Y 2877 +E: 0.434342 0003 0000 3472 # EV_ABS / ABS_X 3472 +E: 0.434342 0003 0001 2872 # EV_ABS / ABS_Y 2872 +E: 0.434342 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.446476 0003 0035 3503 # EV_ABS / ABS_MT_POSITION_X 3503 +E: 0.446476 0003 0036 2884 # EV_ABS / ABS_MT_POSITION_Y 2884 +E: 0.446476 0003 0000 3503 # EV_ABS / ABS_X 3503 +E: 0.446476 0003 0001 2878 # EV_ABS / ABS_Y 2878 +E: 0.446476 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.459050 0003 0035 3536 # EV_ABS / ABS_MT_POSITION_X 3536 +E: 0.459050 0003 0036 2885 # EV_ABS / ABS_MT_POSITION_Y 2885 +E: 0.459050 0003 003a 0065 # EV_ABS / ABS_MT_PRESSURE 65 +E: 0.459050 0003 0000 3536 # EV_ABS / ABS_X 3536 +E: 0.459050 0003 0001 2879 # EV_ABS / ABS_Y 2879 +E: 0.459050 0003 0018 0065 # EV_ABS / ABS_PRESSURE 65 +E: 0.459050 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.471529 0003 0035 3573 # EV_ABS / ABS_MT_POSITION_X 3573 +E: 0.471529 0003 0036 2887 # EV_ABS / ABS_MT_POSITION_Y 2887 +E: 0.471529 0003 0000 3573 # EV_ABS / ABS_X 3573 +E: 0.471529 0003 0001 2883 # EV_ABS / ABS_Y 2883 +E: 0.471529 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.483355 0003 0035 3617 # EV_ABS / ABS_MT_POSITION_X 3617 +E: 0.483355 0003 0036 2907 # EV_ABS / ABS_MT_POSITION_Y 2907 +E: 0.483355 0003 003a 0066 # EV_ABS / ABS_MT_PRESSURE 66 +E: 0.483355 0003 0000 3617 # EV_ABS / ABS_X 3617 +E: 0.483355 0003 0001 2907 # EV_ABS / ABS_Y 2907 +E: 0.483355 0003 0018 0066 # EV_ABS / ABS_PRESSURE 66 +E: 0.483355 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.495627 0003 0035 3652 # EV_ABS / ABS_MT_POSITION_X 3652 +E: 0.495627 0003 0036 2913 # EV_ABS / ABS_MT_POSITION_Y 2913 +E: 0.495627 0003 0000 3652 # EV_ABS / ABS_X 3652 +E: 0.495627 0003 0001 2908 # EV_ABS / ABS_Y 2908 +E: 0.495627 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.507775 0003 0035 3685 # EV_ABS / ABS_MT_POSITION_X 3685 +E: 0.507775 0003 0036 2919 # EV_ABS / ABS_MT_POSITION_Y 2919 +E: 0.507775 0003 003a 0065 # EV_ABS / ABS_MT_PRESSURE 65 +E: 0.507775 0003 0000 3685 # EV_ABS / ABS_X 3685 +E: 0.507775 0003 0001 2913 # EV_ABS / ABS_Y 2913 +E: 0.507775 0003 0018 0065 # EV_ABS / ABS_PRESSURE 65 +E: 0.507775 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.520327 0003 0035 3709 # EV_ABS / ABS_MT_POSITION_X 3709 +E: 0.520327 0003 0036 2923 # EV_ABS / ABS_MT_POSITION_Y 2923 +E: 0.520327 0003 003a 0066 # EV_ABS / ABS_MT_PRESSURE 66 +E: 0.520327 0003 0000 3709 # EV_ABS / ABS_X 3709 +E: 0.520327 0003 0001 2918 # EV_ABS / ABS_Y 2918 +E: 0.520327 0003 0018 0066 # EV_ABS / ABS_PRESSURE 66 +E: 0.520327 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.532107 0003 0035 3713 # EV_ABS / ABS_MT_POSITION_X 3713 +E: 0.532107 0003 0036 2923 # EV_ABS / ABS_MT_POSITION_Y 2923 +E: 0.532107 0003 0000 3710 # EV_ABS / ABS_X 3710 +E: 0.532107 0003 0001 2919 # EV_ABS / ABS_Y 2919 +E: 0.532107 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.545452 0003 0036 2925 # EV_ABS / ABS_MT_POSITION_Y 2925 +E: 0.545452 0003 0001 2920 # EV_ABS / ABS_Y 2920 +E: 0.545452 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.557592 0003 0036 2928 # EV_ABS / ABS_MT_POSITION_Y 2928 +E: 0.557592 0003 003a 0067 # EV_ABS / ABS_MT_PRESSURE 67 +E: 0.557592 0003 0001 2924 # EV_ABS / ABS_Y 2924 +E: 0.557592 0003 0018 0067 # EV_ABS / ABS_PRESSURE 67 +E: 0.557592 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.569714 0003 003a 0066 # EV_ABS / ABS_MT_PRESSURE 66 +E: 0.569714 0003 0018 0066 # EV_ABS / ABS_PRESSURE 66 +E: 0.569714 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.582620 0003 0035 3697 # EV_ABS / ABS_MT_POSITION_X 3697 +E: 0.582620 0003 003a 0063 # EV_ABS / ABS_MT_PRESSURE 63 +E: 0.582620 0003 0000 3703 # EV_ABS / ABS_X 3703 +E: 0.582620 0003 0018 0063 # EV_ABS / ABS_PRESSURE 63 +E: 0.582620 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.594394 0003 0035 3633 # EV_ABS / ABS_MT_POSITION_X 3633 +E: 0.594394 0003 0036 2899 # EV_ABS / ABS_MT_POSITION_Y 2899 +E: 0.594394 0003 003a 0043 # EV_ABS / ABS_MT_PRESSURE 43 +E: 0.594394 0003 0000 3633 # EV_ABS / ABS_X 3633 +E: 0.594394 0003 0001 2899 # EV_ABS / ABS_Y 2899 +E: 0.594394 0003 0018 0043 # EV_ABS / ABS_PRESSURE 43 +E: 0.594394 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.606424 0003 0039 -001 # EV_ABS / ABS_MT_TRACKING_ID -1 +E: 0.606424 0001 014a 0000 # EV_KEY / BTN_TOUCH 0 +E: 0.606424 0003 0018 0000 # EV_ABS / ABS_PRESSURE 0 +E: 0.606424 0001 0145 0000 # EV_KEY / BTN_TOOL_FINGER 0 +E: 0.606424 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- diff --git a/recordings/touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-tap.events b/recordings/touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-tap.events new file mode 100644 index 0000000..901904c --- /dev/null +++ b/recordings/touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-tap.events @@ -0,0 +1,141 @@ +# EVEMU 1.2 +# Input device name: "SynPS/2 Synaptics TouchPad" +# Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1 +# Supported events: +# Event type 0 (EV_SYN) +# Event code 0 (SYN_REPORT) +# Event code 1 (SYN_CONFIG) +# Event code 3 (SYN_DROPPED) +# Event type 1 (EV_KEY) +# Event code 272 (BTN_LEFT) +# Event code 325 (BTN_TOOL_FINGER) +# Event code 328 (BTN_TOOL_QUINTTAP) +# Event code 330 (BTN_TOUCH) +# Event code 333 (BTN_TOOL_DOUBLETAP) +# Event code 334 (BTN_TOOL_TRIPLETAP) +# Event code 335 (BTN_TOOL_QUADTAP) +# Event type 3 (EV_ABS) +# Event code 0 (ABS_X) +# Value 3633 +# Min 1472 +# Max 5472 +# Fuzz 0 +# Flat 0 +# Resolution 75 +# Event code 1 (ABS_Y) +# Value 2899 +# Min 1408 +# Max 4448 +# Fuzz 0 +# Flat 0 +# Resolution 129 +# Event code 24 (ABS_PRESSURE) +# Value 0 +# Min 0 +# Max 255 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Event code 28 (ABS_TOOL_WIDTH) +# Value 0 +# Min 0 +# Max 15 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Event code 47 (ABS_MT_SLOT) +# Value 0 +# Min 0 +# Max 1 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Event code 53 (ABS_MT_POSITION_X) +# Value 0 +# Min 1472 +# Max 5472 +# Fuzz 8 +# Flat 0 +# Resolution 75 +# Event code 54 (ABS_MT_POSITION_Y) +# Value 0 +# Min 1408 +# Max 4448 +# Fuzz 8 +# Flat 0 +# Resolution 129 +# Event code 57 (ABS_MT_TRACKING_ID) +# Value 0 +# Min 0 +# Max 65535 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Event code 58 (ABS_MT_PRESSURE) +# Value 0 +# Min 0 +# Max 255 +# Fuzz 0 +# Flat 0 +# Resolution 0 +# Properties: +# Property type 0 (INPUT_PROP_POINTER) +# Property type 2 (INPUT_PROP_BUTTONPAD) +N: SynPS/2 Synaptics TouchPad +I: 0011 0002 0007 01b1 +P: 05 00 00 00 00 00 00 00 +B: 00 0b 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 01 00 00 00 00 00 +B: 01 20 e5 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 01 00 00 00 00 00 00 00 00 +B: 02 00 00 00 00 00 00 00 00 +B: 03 03 00 00 11 00 80 60 06 +B: 04 00 00 00 00 00 00 00 00 +B: 05 00 00 00 00 00 00 00 00 +B: 11 00 00 00 00 00 00 00 00 +B: 12 00 00 00 00 00 00 00 00 +B: 15 00 00 00 00 00 00 00 00 +B: 15 00 00 00 00 00 00 00 00 +A: 00 1472 5472 0 0 75 +A: 01 1408 4448 0 0 129 +A: 18 0 255 0 0 0 +A: 1c 0 15 0 0 0 +A: 2f 0 1 0 0 0 +A: 35 1472 5472 8 0 75 +A: 36 1408 4448 8 0 129 +A: 39 0 65535 0 0 0 +A: 3a 0 255 0 0 0 +################################ +# Waiting for events # +################################ +E: 0.000000 0003 0039 1055 # EV_ABS / ABS_MT_TRACKING_ID 1055 +E: 0.000000 0003 0035 3582 # EV_ABS / ABS_MT_POSITION_X 3582 +E: 0.000000 0003 0036 3238 # EV_ABS / ABS_MT_POSITION_Y 3238 +E: 0.000000 0003 003a 0085 # EV_ABS / ABS_MT_PRESSURE 85 +E: 0.000000 0001 014a 0001 # EV_KEY / BTN_TOUCH 1 +E: 0.000000 0003 0000 3582 # EV_ABS / ABS_X 3582 +E: 0.000000 0003 0001 3238 # EV_ABS / ABS_Y 3238 +E: 0.000000 0003 0018 0085 # EV_ABS / ABS_PRESSURE 85 +E: 0.000000 0001 0145 0001 # EV_KEY / BTN_TOOL_FINGER 1 +E: 0.000000 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.024713 0003 0035 3573 # EV_ABS / ABS_MT_POSITION_X 3573 +E: 0.024713 0003 0036 3199 # EV_ABS / ABS_MT_POSITION_Y 3199 +E: 0.024713 0003 003a 0070 # EV_ABS / ABS_MT_PRESSURE 70 +E: 0.024713 0003 0000 3577 # EV_ABS / ABS_X 3577 +E: 0.024713 0003 0001 3199 # EV_ABS / ABS_Y 3199 +E: 0.024713 0003 0018 0070 # EV_ABS / ABS_PRESSURE 70 +E: 0.024713 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +E: 0.036641 0003 0039 -001 # EV_ABS / ABS_MT_TRACKING_ID -1 +E: 0.036641 0001 014a 0000 # EV_KEY / BTN_TOUCH 0 +E: 0.036641 0003 0018 0000 # EV_ABS / ABS_PRESSURE 0 +E: 0.036641 0001 0145 0000 # EV_KEY / BTN_TOOL_FINGER 0 +E: 0.036641 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- diff --git a/tests/input/synaptics.cpp b/tests/input/synaptics.cpp index 91fa2ce..993a7f4 100644 --- a/tests/input/synaptics.cpp +++ b/tests/input/synaptics.cpp @@ -1632,6 +1632,162 @@ TEST_F(SynapticsScrollButtonTest, ScrollButtonUpDownMiddleDouble) ASSERT_EQ(middle4->xbutton.button, 2); } +class SynapticsClickOnlyTest : public SynapticsTest { +public: + virtual void SetUp() { + SetDevice("touchpads/SynPS2-Synaptics-TouchPad-Clickpad.desc"); + + xi2_major_minimum = 2; + xi2_minor_minimum = 1; + + XITServerInputTest::SetUp(); + } + + virtual void SetUpConfigAndLog() { + config.AddDefaultScreenWithDriver(); + config.AddInputSection("synaptics", "--device--", + "Option \"CorePointer\" \"on\"\n" + "Option \"GrabEventDevice\" \"1\"\n" + "Option \"TapButton1\" \"1\"\n" + "Option \"VertTwoFingerScroll\" \"1\"\n" + "Option \"SoftButtonAreas\" \"50% 0 82% 0 0 0 0 0\"\n" + "Option \"Device\" \"" + dev->GetDeviceNode() + "\"\n"); + config.WriteConfig(); + } + + virtual void SetToClickOnly(::Display *dpy, int deviceid) { + SetErrorTrap(dpy); + XITProperty off_prop(dpy, deviceid, "Synaptics Off"); + off_prop.data[0] = 3; + off_prop.Update(); + ASSERT_FALSE(ReleaseErrorTrap(dpy)); + } +}; + +TEST_F(SynapticsClickOnlyTest, PropertyValueOk) +{ + XORG_TESTCASE("Check setting the property to value 3 works\n"); + + ::Display *dpy = Display(); + int deviceid; + ASSERT_TRUE(FindInputDeviceByName(dpy, "--device--", &deviceid)); + + SetToClickOnly(dpy, deviceid); +} + +TEST_F(SynapticsClickOnlyTest, PropertyValueInvalid) +{ + XORG_TESTCASE("Set Touchpad Off property to click only\n" + "Generate button event, expect events\n"); + + ::Display *dpy = Display(); + int deviceid; + ASSERT_TRUE(FindInputDeviceByName(dpy, "--device--", &deviceid)); + + SetErrorTrap(dpy); + XITProperty off_prop(dpy, deviceid, "Synaptics Off"); + off_prop.data[0] = 4; + off_prop.Update(); + ASSERT_ERROR(ReleaseErrorTrap(dpy), BadValue); +} + +TEST_F(SynapticsClickOnlyTest, PropertyPreventsMovement) +{ + XORG_TESTCASE("Move a finger, expect motion events\n" + "Set Touchpad Off property to click only\n" + "Move a finger, expect no events\n"); + + ::Display *dpy = Display(); + int deviceid; + ASSERT_TRUE(FindInputDeviceByName(dpy, "--device--", &deviceid)); + + XSelectInput(dpy, DefaultRootWindow(dpy), ButtonPressMask|ButtonReleaseMask|PointerMotionMask); + + dev->Play(RECORDINGS_DIR "touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-move.events"); + + ASSERT_EVENT(XEvent, motion, dpy, MotionNotify); + + SetToClickOnly(dpy, deviceid); + XSync(dpy, True); + + dev->Play(RECORDINGS_DIR "touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-move.events"); + + ASSERT_TRUE(NoEventPending(dpy)); +} + +TEST_F(SynapticsClickOnlyTest, PropertyPreventsTapping) +{ + XORG_TESTCASE("Tap, expect button events\n" + "Set Touchpad Off property to click only\n" + "Tap, expect no events\n"); + + ::Display *dpy = Display(); + int deviceid; + ASSERT_TRUE(FindInputDeviceByName(dpy, "--device--", &deviceid)); + + XSelectInput(dpy, DefaultRootWindow(dpy), ButtonPressMask|ButtonReleaseMask|PointerMotionMask); + + dev->Play(RECORDINGS_DIR "touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-tap.events"); + + ASSERT_EVENT(XEvent, press, dpy, ButtonPress); + ASSERT_EVENT(XEvent, release, dpy, ButtonRelease); + + SetToClickOnly(dpy, deviceid); + XSync(dpy, True); + + dev->Play(RECORDINGS_DIR "touchpads/SynPS2-Synaptics-TouchPad-Clickpad.one-finger-tap.events"); + + ASSERT_TRUE(NoEventPending(dpy)); +} + +TEST_F(SynapticsClickOnlyTest, PropertyPreventsScroll) +{ + XORG_TESTCASE("Scroll, expect events\n" + "Set Touchpad Off property to click only\n" + "Scroll, expect no events\n"); + + ::Display *dpy = Display(); + int deviceid; + ASSERT_TRUE(FindInputDeviceByName(dpy, "--device--", &deviceid)); + + XSelectInput(dpy, DefaultRootWindow(dpy), ButtonPressMask|ButtonReleaseMask|PointerMotionMask); + + dev->Play(RECORDINGS_DIR "touchpads/SynPS2-Synaptics-TouchPad-Clickpad.two-finger-scroll-up.events"); + + ASSERT_EVENT(XEvent, press, dpy, ButtonPress); + ASSERT_EQ(press->xbutton.button, 4); + ASSERT_EVENT(XEvent, release, dpy, ButtonRelease); + ASSERT_EQ(release->xbutton.button, 4); + + SetToClickOnly(dpy, deviceid); + XSync(dpy, True); + + dev->Play(RECORDINGS_DIR "touchpads/SynPS2-Synaptics-TouchPad-Clickpad.two-finger-scroll-up.events"); + + ASSERT_TRUE(NoEventPending(dpy)); +} + +TEST_F(SynapticsClickOnlyTest, PropertyAllowsButton) +{ + XORG_TESTCASE("Set Touchpad Off property to click only\n" + "Generate button event, expect events\n"); + + ::Display *dpy = Display(); + int deviceid; + ASSERT_TRUE(FindInputDeviceByName(dpy, "--device--", &deviceid)); + + XSelectInput(dpy, DefaultRootWindow(dpy), ButtonPressMask|ButtonReleaseMask|PointerMotionMask); + + SetToClickOnly(dpy, deviceid); + + dev->Play(RECORDINGS_DIR "touchpads/SynPS2-Synaptics-TouchPad-Clickpad.right-phys-click.events"); + + ASSERT_EVENT(XEvent, press, dpy, ButtonPress); + ASSERT_EQ(press->xbutton.button, 3); + ASSERT_EVENT(XEvent, release, dpy, ButtonRelease); + ASSERT_EQ(release->xbutton.button, 3); +} + int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); -- cgit v1.2.3