evdev: restore pointing stick const accel property parsing
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 20 Jul 2015 23:33:47 +0000 (09:33 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Tue, 21 Jul 2015 01:08:50 +0000 (11:08 +1000)
Regression introduced in 8302860.

Reading the DPI before evdev_configure_device makes it lose on the trackpoint
flag, causing libinput to ignore the POINTINGSTICK_CONST_ACCEL property.

8302860 moved it up so we can init accel based on the DPI, this patch simply
moves istart t before the acceleration is initialized.

https://bugs.freedesktop.org/show_bug.cgi?id=91369

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
src/evdev.c

index 05d9b17..07934de 100644 (file)
@@ -1958,6 +1958,10 @@ evdev_configure_device(struct evdev_device *device)
 
        if (udev_tags & EVDEV_UDEV_TAG_MOUSE ||
            udev_tags & EVDEV_UDEV_TAG_POINTINGSTICK) {
+               evdev_tag_external_mouse(device, device->udev_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) == -1)
@@ -1975,9 +1979,6 @@ evdev_configure_device(struct evdev_device *device)
                device->scroll.natural_scrolling_enabled = true;
                /* want button scrolling config option */
                device->scroll.want_button = 1;
-
-               evdev_tag_external_mouse(device, device->udev_device);
-               evdev_tag_trackpoint(device, device->udev_device);
        }
 
        if (udev_tags & EVDEV_UDEV_TAG_KEYBOARD) {
@@ -2146,7 +2147,7 @@ evdev_device_create(struct libinput_seat *seat,
        device->scroll.wheel_click_angle =
                evdev_read_wheel_click_prop(device);
        device->model = evdev_read_model(device);
-       device->dpi = evdev_read_dpi_prop(device);
+       device->dpi = DEFAULT_MOUSE_DPI;
 
        /* at most 5 SYN_DROPPED log-messages per 30s */
        ratelimit_init(&device->syn_drop_limit, 30ULL * 1000, 5);