diff --git a/0001-evdev-whitespace-fix.patch b/0001-evdev-whitespace-fix.patch new file mode 100644 index 0000000..8004ce2 --- /dev/null +++ b/0001-evdev-whitespace-fix.patch @@ -0,0 +1,26 @@ +From f012d78de4577e9c1b55a63033825d3b13c5d696 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Wed, 28 Oct 2015 09:18:18 +1000 +Subject: [PATCH libinput 1/5] evdev: whitespace fix + +Signed-off-by: Peter Hutterer +--- + src/evdev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/evdev.c b/src/evdev.c +index aef0456..45c1b1b 100644 +--- a/src/evdev.c ++++ b/src/evdev.c +@@ -297,7 +297,7 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time) + + /* Use unaccelerated deltas for pointing stick scroll */ + if (evdev_post_trackpoint_scroll(device, unaccel, time)) +- break; ++ break; + + /* Apply pointer acceleration. */ + accel = filter_dispatch(device->pointer.filter, +-- +2.4.3 + diff --git a/0002-evdev-log-a-bug-for-missing-pointer-accel-on-relativ.patch b/0002-evdev-log-a-bug-for-missing-pointer-accel-on-relativ.patch new file mode 100644 index 0000000..fd08139 --- /dev/null +++ b/0002-evdev-log-a-bug-for-missing-pointer-accel-on-relativ.patch @@ -0,0 +1,45 @@ +From 5d961f282df3296f9b8f1126a196bc163f6ba011 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Wed, 28 Oct 2015 09:20:33 +1000 +Subject: [PATCH libinput 2/5] evdev: log a bug for missing pointer accel on + relative events + +And use the unaccelerated motion events. Better than crashing, and better than +a non-moving mouse. + +Signed-off-by: Peter Hutterer +--- + src/evdev.c | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/src/evdev.c b/src/evdev.c +index 45c1b1b..4c947d6 100644 +--- a/src/evdev.c ++++ b/src/evdev.c +@@ -299,11 +299,18 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time) + if (evdev_post_trackpoint_scroll(device, unaccel, time)) + break; + +- /* Apply pointer acceleration. */ +- accel = filter_dispatch(device->pointer.filter, +- &unaccel, +- device, +- time); ++ if (device->pointer.filter) { ++ /* Apply pointer acceleration. */ ++ accel = filter_dispatch(device->pointer.filter, ++ &unaccel, ++ device, ++ time); ++ } else { ++ log_bug_libinput(libinput, ++ "%s: accel filter missing\n", ++ udev_device_get_devnode(device->udev_device)); ++ accel = unaccel; ++ } + + if (normalized_is_zero(accel) && normalized_is_zero(unaccel)) + break; +-- +2.4.3 + diff --git a/0003-evdev-don-t-handle-motion-events-if-the-device-isn-t.patch b/0003-evdev-don-t-handle-motion-events-if-the-device-isn-t.patch new file mode 100644 index 0000000..410571a --- /dev/null +++ b/0003-evdev-don-t-handle-motion-events-if-the-device-isn-t.patch @@ -0,0 +1,30 @@ +From 48f1c63007c416c03363d27f4956e50b6e1c32b0 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Wed, 28 Oct 2015 09:05:37 +1000 +Subject: [PATCH libinput 3/5] evdev: don't handle motion events if the device + isn't a pointer device + +This check is already in place for all other event types. + +Signed-off-by: Peter Hutterer +--- + src/evdev.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/evdev.c b/src/evdev.c +index 4c947d6..ba1b568 100644 +--- a/src/evdev.c ++++ b/src/evdev.c +@@ -289,6 +289,9 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time) + case EVDEV_NONE: + return; + case EVDEV_RELATIVE_MOTION: ++ if (!(device->seat_caps & EVDEV_DEVICE_POINTER)) ++ break; ++ + normalize_delta(device, &device->rel, &unaccel); + raw.x = device->rel.x; + raw.y = device->rel.y; +-- +2.4.3 + diff --git a/0004-evdev-init-pointer-acceleration-for-any-device-with-.patch b/0004-evdev-init-pointer-acceleration-for-any-device-with-.patch new file mode 100644 index 0000000..9ce14ca --- /dev/null +++ b/0004-evdev-init-pointer-acceleration-for-any-device-with-.patch @@ -0,0 +1,60 @@ +From 64ec0dc79619c1d9cdd772abfdbcb87b6b94d71f Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Wed, 28 Oct 2015 09:13:24 +1000 +Subject: [PATCH libinput 4/5] evdev: init pointer acceleration for any device + with pointer cap and rel x/y + +The Asus RoG Gladius exposes two event nodes, one mouse, one keyboard. The +keyboard node has REL_X/Y and REL_HWHEEL on top of the various key bits and +ABS_VOLUME. + +The keyboard node does not have BTN_* set, udev tags this device as a +keyboard only, not as a pointer but we still initialize the pointer caps for +it because of the wheel. + +When moving this mouse, the deltas are sent through the keyboard node, causing +a crash because we never initialized pointer acceleration. + +https://bugzilla.redhat.com/show_bug.cgi?id=1275407 + +Signed-off-by: Peter Hutterer +--- + src/evdev.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +diff --git a/src/evdev.c b/src/evdev.c +index ba1b568..ec3abc6 100644 +--- a/src/evdev.c ++++ b/src/evdev.c +@@ -2062,11 +2062,6 @@ evdev_configure_device(struct evdev_device *device) + evdev_tag_trackpoint(device, device->udev_device); + device->dpi = evdev_read_dpi_prop(device); + +- if (libevdev_has_event_code(evdev, EV_REL, REL_X) && +- libevdev_has_event_code(evdev, EV_REL, REL_Y) && +- evdev_init_accel(device, LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE) == -1) +- return -1; +- + device->seat_caps |= EVDEV_DEVICE_POINTER; + + log_info(libinput, +@@ -2104,6 +2099,16 @@ evdev_configure_device(struct evdev_device *device) + device->devname, devnode); + } + ++ if (device->seat_caps & EVDEV_DEVICE_POINTER && ++ libevdev_has_event_code(evdev, EV_REL, REL_X) && ++ libevdev_has_event_code(evdev, EV_REL, REL_Y) && ++ evdev_init_accel(device, LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE) == -1) { ++ log_error(libinput, ++ "failed to initialize pointer acceleration for %s\n", ++ device->devname); ++ return -1; ++ } ++ + return 0; + } + +-- +2.4.3 + diff --git a/0005-test-add-Asus-RoG-Gladius-mouse.patch b/0005-test-add-Asus-RoG-Gladius-mouse.patch new file mode 100644 index 0000000..b56a543 --- /dev/null +++ b/0005-test-add-Asus-RoG-Gladius-mouse.patch @@ -0,0 +1,406 @@ +From 1e30238c569d95530f13e4289d55570830f631eb Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Wed, 28 Oct 2015 09:55:01 +1000 +Subject: [PATCH libinput 5/5] test: add Asus RoG Gladius mouse + +This device has the usual mouse and keyboard event nodes that most gaming mice +have. Relative events are sent through the keyboard node, not the mouse +node - and that node doesn't have any buttons and isn't tagged as pointer +device by udev. + +Signed-off-by: Peter Hutterer +--- + test/Makefile.am | 1 + + test/litest-device-asus-rog-gladius.c | 334 ++++++++++++++++++++++++++++++++++ + test/litest.c | 2 + + test/litest.h | 1 + + 4 files changed, 338 insertions(+) + create mode 100644 test/litest-device-asus-rog-gladius.c + +diff --git a/test/Makefile.am b/test/Makefile.am +index cde93b3..ff1acda 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -15,6 +15,7 @@ liblitest_la_SOURCES = \ + litest-int.h \ + litest-device-alps-semi-mt.c \ + litest-device-alps-dualpoint.c \ ++ litest-device-asus-rog-gladius.c \ + litest-device-atmel-hover.c \ + litest-device-bcm5974.c \ + litest-device-elantech-touchpad.c \ +diff --git a/test/litest-device-asus-rog-gladius.c b/test/litest-device-asus-rog-gladius.c +new file mode 100644 +index 0000000..a44396f +--- /dev/null ++++ b/test/litest-device-asus-rog-gladius.c +@@ -0,0 +1,334 @@ ++/* ++ * Copyright © 2015 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ */ ++ ++#if HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include "litest.h" ++#include "litest-int.h" ++ ++/* Note: this is the second event node of this mouse only, the first event ++ * node is just a normal mouse */ ++ ++static void litest_mouse_gladius_setup(void) ++{ ++ struct litest_device *d = litest_create_device(LITEST_MOUSE_GLADIUS); ++ litest_set_current_device(d); ++} ++ ++static struct input_id input_id = { ++ .bustype = 0x3, ++ .vendor = 0x0b05, ++ .product = 0x181a, ++}; ++ ++static int events[] = { ++ EV_REL, REL_X, ++ EV_REL, REL_Y, ++ EV_REL, REL_HWHEEL, ++ EV_KEY, KEY_ESC, ++ EV_KEY, KEY_1, ++ EV_KEY, KEY_2, ++ EV_KEY, KEY_3, ++ EV_KEY, KEY_4, ++ EV_KEY, KEY_5, ++ EV_KEY, KEY_6, ++ EV_KEY, KEY_7, ++ EV_KEY, KEY_8, ++ EV_KEY, KEY_9, ++ EV_KEY, KEY_0, ++ EV_KEY, KEY_MINUS, ++ EV_KEY, KEY_EQUAL, ++ EV_KEY, KEY_BACKSPACE, ++ EV_KEY, KEY_TAB, ++ EV_KEY, KEY_Q, ++ EV_KEY, KEY_W, ++ EV_KEY, KEY_E, ++ EV_KEY, KEY_R, ++ EV_KEY, KEY_T, ++ EV_KEY, KEY_Y, ++ EV_KEY, KEY_U, ++ EV_KEY, KEY_I, ++ EV_KEY, KEY_O, ++ EV_KEY, KEY_P, ++ EV_KEY, KEY_LEFTBRACE, ++ EV_KEY, KEY_RIGHTBRACE, ++ EV_KEY, KEY_ENTER, ++ EV_KEY, KEY_LEFTCTRL, ++ EV_KEY, KEY_A, ++ EV_KEY, KEY_S, ++ EV_KEY, KEY_D, ++ EV_KEY, KEY_F, ++ EV_KEY, KEY_G, ++ EV_KEY, KEY_H, ++ EV_KEY, KEY_J, ++ EV_KEY, KEY_K, ++ EV_KEY, KEY_L, ++ EV_KEY, KEY_SEMICOLON, ++ EV_KEY, KEY_APOSTROPHE, ++ EV_KEY, KEY_GRAVE, ++ EV_KEY, KEY_LEFTSHIFT, ++ EV_KEY, KEY_BACKSLASH, ++ EV_KEY, KEY_Z, ++ EV_KEY, KEY_X, ++ EV_KEY, KEY_C, ++ EV_KEY, KEY_V, ++ EV_KEY, KEY_B, ++ EV_KEY, KEY_N, ++ EV_KEY, KEY_M, ++ EV_KEY, KEY_COMMA, ++ EV_KEY, KEY_DOT, ++ EV_KEY, KEY_SLASH, ++ EV_KEY, KEY_RIGHTSHIFT, ++ EV_KEY, KEY_KPASTERISK, ++ EV_KEY, KEY_LEFTALT, ++ EV_KEY, KEY_SPACE, ++ EV_KEY, KEY_CAPSLOCK, ++ EV_KEY, KEY_F1, ++ EV_KEY, KEY_F2, ++ EV_KEY, KEY_F3, ++ EV_KEY, KEY_F4, ++ EV_KEY, KEY_F5, ++ EV_KEY, KEY_F6, ++ EV_KEY, KEY_F7, ++ EV_KEY, KEY_F8, ++ EV_KEY, KEY_F9, ++ EV_KEY, KEY_F10, ++ EV_KEY, KEY_NUMLOCK, ++ EV_KEY, KEY_SCROLLLOCK, ++ EV_KEY, KEY_KP7, ++ EV_KEY, KEY_KP8, ++ EV_KEY, KEY_KP9, ++ EV_KEY, KEY_KPMINUS, ++ EV_KEY, KEY_KP4, ++ EV_KEY, KEY_KP5, ++ EV_KEY, KEY_KP6, ++ EV_KEY, KEY_KPPLUS, ++ EV_KEY, KEY_KP1, ++ EV_KEY, KEY_KP2, ++ EV_KEY, KEY_KP3, ++ EV_KEY, KEY_KP0, ++ EV_KEY, KEY_KPDOT, ++ EV_KEY, KEY_ZENKAKUHANKAKU, ++ EV_KEY, KEY_102ND, ++ EV_KEY, KEY_F11, ++ EV_KEY, KEY_F12, ++ EV_KEY, KEY_RO, ++ EV_KEY, KEY_KATAKANA, ++ EV_KEY, KEY_HIRAGANA, ++ EV_KEY, KEY_HENKAN, ++ EV_KEY, KEY_KATAKANAHIRAGANA, ++ EV_KEY, KEY_MUHENKAN, ++ EV_KEY, KEY_KPJPCOMMA, ++ EV_KEY, KEY_KPENTER, ++ EV_KEY, KEY_RIGHTCTRL, ++ EV_KEY, KEY_KPSLASH, ++ EV_KEY, KEY_SYSRQ, ++ EV_KEY, KEY_RIGHTALT, ++ EV_KEY, KEY_HOME, ++ EV_KEY, KEY_UP, ++ EV_KEY, KEY_PAGEUP, ++ EV_KEY, KEY_LEFT, ++ EV_KEY, KEY_RIGHT, ++ EV_KEY, KEY_END, ++ EV_KEY, KEY_DOWN, ++ EV_KEY, KEY_PAGEDOWN, ++ EV_KEY, KEY_INSERT, ++ EV_KEY, KEY_DELETE, ++ EV_KEY, KEY_MUTE, ++ EV_KEY, KEY_VOLUMEDOWN, ++ EV_KEY, KEY_VOLUMEUP, ++ EV_KEY, KEY_POWER, ++ EV_KEY, KEY_KPEQUAL, ++ EV_KEY, KEY_PAUSE, ++ EV_KEY, KEY_KPCOMMA, ++ EV_KEY, KEY_HANGEUL, ++ EV_KEY, KEY_HANJA, ++ EV_KEY, KEY_YEN, ++ EV_KEY, KEY_LEFTMETA, ++ EV_KEY, KEY_RIGHTMETA, ++ EV_KEY, KEY_COMPOSE, ++ EV_KEY, KEY_STOP, ++ EV_KEY, KEY_AGAIN, ++ EV_KEY, KEY_PROPS, ++ EV_KEY, KEY_UNDO, ++ EV_KEY, KEY_FRONT, ++ EV_KEY, KEY_COPY, ++ EV_KEY, KEY_OPEN, ++ EV_KEY, KEY_PASTE, ++ EV_KEY, KEY_FIND, ++ EV_KEY, KEY_CUT, ++ EV_KEY, KEY_HELP, ++ EV_KEY, KEY_MENU, ++ EV_KEY, KEY_CALC, ++ EV_KEY, KEY_SLEEP, ++ EV_KEY, KEY_FILE, ++ EV_KEY, KEY_WWW, ++ EV_KEY, KEY_COFFEE, ++ EV_KEY, KEY_MAIL, ++ EV_KEY, KEY_BOOKMARKS, ++ EV_KEY, KEY_BACK, ++ EV_KEY, KEY_FORWARD, ++ EV_KEY, KEY_EJECTCD, ++ EV_KEY, KEY_NEXTSONG, ++ EV_KEY, KEY_PLAYPAUSE, ++ EV_KEY, KEY_PREVIOUSSONG, ++ EV_KEY, KEY_STOPCD, ++ EV_KEY, KEY_RECORD, ++ EV_KEY, KEY_REWIND, ++ EV_KEY, KEY_PHONE, ++ EV_KEY, KEY_CONFIG, ++ EV_KEY, KEY_HOMEPAGE, ++ EV_KEY, KEY_REFRESH, ++ EV_KEY, KEY_EXIT, ++ EV_KEY, KEY_EDIT, ++ EV_KEY, KEY_SCROLLUP, ++ EV_KEY, KEY_SCROLLDOWN, ++ EV_KEY, KEY_KPLEFTPAREN, ++ EV_KEY, KEY_KPRIGHTPAREN, ++ EV_KEY, KEY_NEW, ++ EV_KEY, KEY_REDO, ++ EV_KEY, KEY_F13, ++ EV_KEY, KEY_F14, ++ EV_KEY, KEY_F15, ++ EV_KEY, KEY_F16, ++ EV_KEY, KEY_F17, ++ EV_KEY, KEY_F18, ++ EV_KEY, KEY_F19, ++ EV_KEY, KEY_F20, ++ EV_KEY, KEY_F21, ++ EV_KEY, KEY_F22, ++ EV_KEY, KEY_F23, ++ EV_KEY, KEY_F24, ++ EV_KEY, KEY_CLOSE, ++ EV_KEY, KEY_PLAY, ++ EV_KEY, KEY_FASTFORWARD, ++ EV_KEY, KEY_BASSBOOST, ++ EV_KEY, KEY_PRINT, ++ EV_KEY, KEY_CAMERA, ++ EV_KEY, KEY_CHAT, ++ EV_KEY, KEY_SEARCH, ++ EV_KEY, KEY_FINANCE, ++ EV_KEY, KEY_CANCEL, ++ EV_KEY, KEY_BRIGHTNESSDOWN, ++ EV_KEY, KEY_BRIGHTNESSUP, ++ EV_KEY, KEY_KBDILLUMTOGGLE, ++ EV_KEY, KEY_SEND, ++ EV_KEY, KEY_REPLY, ++ EV_KEY, KEY_FORWARDMAIL, ++ EV_KEY, KEY_SAVE, ++ EV_KEY, KEY_DOCUMENTS, ++ EV_KEY, KEY_UNKNOWN, ++ EV_KEY, KEY_VIDEO_NEXT, ++ EV_KEY, KEY_BRIGHTNESS_AUTO, ++ EV_KEY, BTN_0, ++ EV_KEY, KEY_SELECT, ++ EV_KEY, KEY_GOTO, ++ EV_KEY, KEY_INFO, ++ EV_KEY, KEY_PROGRAM, ++ EV_KEY, KEY_PVR, ++ EV_KEY, KEY_SUBTITLE, ++ EV_KEY, KEY_ZOOM, ++ EV_KEY, KEY_KEYBOARD, ++ EV_KEY, KEY_PC, ++ EV_KEY, KEY_TV, ++ EV_KEY, KEY_TV2, ++ EV_KEY, KEY_VCR, ++ EV_KEY, KEY_VCR2, ++ EV_KEY, KEY_SAT, ++ EV_KEY, KEY_CD, ++ EV_KEY, KEY_TAPE, ++ EV_KEY, KEY_TUNER, ++ EV_KEY, KEY_PLAYER, ++ EV_KEY, KEY_DVD, ++ EV_KEY, KEY_AUDIO, ++ EV_KEY, KEY_VIDEO, ++ EV_KEY, KEY_MEMO, ++ EV_KEY, KEY_CALENDAR, ++ EV_KEY, KEY_RED, ++ EV_KEY, KEY_GREEN, ++ EV_KEY, KEY_YELLOW, ++ EV_KEY, KEY_BLUE, ++ EV_KEY, KEY_CHANNELUP, ++ EV_KEY, KEY_CHANNELDOWN, ++ EV_KEY, KEY_LAST, ++ EV_KEY, KEY_NEXT, ++ EV_KEY, KEY_RESTART, ++ EV_KEY, KEY_SLOW, ++ EV_KEY, KEY_SHUFFLE, ++ EV_KEY, KEY_PREVIOUS, ++ EV_KEY, KEY_VIDEOPHONE, ++ EV_KEY, KEY_GAMES, ++ EV_KEY, KEY_ZOOMIN, ++ EV_KEY, KEY_ZOOMOUT, ++ EV_KEY, KEY_ZOOMRESET, ++ EV_KEY, KEY_WORDPROCESSOR, ++ EV_KEY, KEY_EDITOR, ++ EV_KEY, KEY_SPREADSHEET, ++ EV_KEY, KEY_GRAPHICSEDITOR, ++ EV_KEY, KEY_PRESENTATION, ++ EV_KEY, KEY_DATABASE, ++ EV_KEY, KEY_NEWS, ++ EV_KEY, KEY_VOICEMAIL, ++ EV_KEY, KEY_ADDRESSBOOK, ++ EV_KEY, KEY_MESSENGER, ++ EV_KEY, KEY_DISPLAYTOGGLE, ++ EV_KEY, KEY_SPELLCHECK, ++ EV_KEY, KEY_LOGOFF, ++ EV_KEY, KEY_MEDIA_REPEAT, ++ EV_KEY, KEY_IMAGES, ++ EV_KEY, KEY_BUTTONCONFIG, ++ EV_KEY, KEY_TASKMANAGER, ++ EV_KEY, KEY_JOURNAL, ++ EV_KEY, KEY_CONTROLPANEL, ++ EV_KEY, KEY_APPSELECT, ++ EV_KEY, KEY_SCREENSAVER, ++ EV_KEY, KEY_VOICECOMMAND, ++ EV_KEY, KEY_BRIGHTNESS_MIN, ++ EV_KEY, KEY_BRIGHTNESS_MAX, ++ EV_LED, LED_NUML, ++ EV_LED, LED_CAPSL, ++ EV_LED, LED_SCROLLL, ++ EV_LED, LED_COMPOSE, ++ EV_LED, LED_KANA, ++ -1 , -1, ++}; ++ ++static struct input_absinfo absinfo[] = { ++ { ABS_VOLUME, 0, 668, 0, 0, 0 }, ++ { .value = -1 } ++}; ++ ++struct litest_test_device litest_mouse_gladius_device = { ++ .type = LITEST_MOUSE_GLADIUS, ++ .features = LITEST_RELATIVE | LITEST_WHEEL | LITEST_KEYS, ++ .shortname = "mouse_gladius", ++ .setup = litest_mouse_gladius_setup, ++ .interface = NULL, ++ ++ .name = "ASUS ROG GLADIUS", ++ .id = &input_id, ++ .absinfo = absinfo, ++ .events = events, ++}; +diff --git a/test/litest.c b/test/litest.c +index bfa28f4..c7cb274 100644 +--- a/test/litest.c ++++ b/test/litest.c +@@ -365,6 +365,7 @@ extern struct litest_test_device litest_generic_multitouch_screen_device; + extern struct litest_test_device litest_nexus4_device; + extern struct litest_test_device litest_magicpad_device; + extern struct litest_test_device litest_elantech_touchpad_device; ++extern struct litest_test_device litest_mouse_gladius_device; + + struct litest_test_device* devices[] = { + &litest_synaptics_clickpad_device, +@@ -396,6 +397,7 @@ struct litest_test_device* devices[] = { + &litest_nexus4_device, + &litest_magicpad_device, + &litest_elantech_touchpad_device, ++ &litest_mouse_gladius_device, + NULL, + }; + +diff --git a/test/litest.h b/test/litest.h +index 8a4b33d..058057e 100644 +--- a/test/litest.h ++++ b/test/litest.h +@@ -142,6 +142,7 @@ enum litest_device_type { + LITEST_NEXUS4_TOUCH_SCREEN = -28, + LITEST_MAGIC_TRACKPAD = -29, + LITEST_ELANTECH_TOUCHPAD = -30, ++ LITEST_MOUSE_GLADIUS = -31, + }; + + enum litest_device_feature { +-- +2.4.3 + diff --git a/libinput.spec b/libinput.spec index 4dd9ae0..075a90c 100644 --- a/libinput.spec +++ b/libinput.spec @@ -5,7 +5,7 @@ Name: libinput Version: 1.1.0 -Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library License: MIT @@ -21,6 +21,12 @@ Source0: http://www.freedesktop.org/software/libinput/libinput-%{version} # Not upstream, keep until kernel 4.2 or 4.1.x with dbf3c37086 Patch01: 0001-touchpad-serial-synaptics-need-to-fake-new-touches-o.patch +Patch02: 0001-evdev-whitespace-fix.patch +Patch03: 0002-evdev-log-a-bug-for-missing-pointer-accel-on-relativ.patch +Patch04: 0003-evdev-don-t-handle-motion-events-if-the-device-isn-t.patch +Patch05: 0004-evdev-init-pointer-acceleration-for-any-device-with-.patch +Patch06: 0005-test-add-Asus-RoG-Gladius-mouse.patch + BuildRequires: git BuildRequires: autoconf automake libtool pkgconfig BuildRequires: libevdev-devel @@ -97,6 +103,9 @@ find $RPM_BUILD_ROOT -name '*.la' -delete %changelog +* Wed Oct 28 2015 Peter Hutterer 1.1.0-2 +- Fix crash triggered by Asus RoG Gladius mouse (#1275407) + * Mon Oct 26 2015 Peter Hutterer 1.1.0-1 - libinput 1.1.0