<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - IBM Scrollpoint mouse: libinput mouse scrolling speed insanely fast"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=106036#c8">Comment # 8</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - IBM Scrollpoint mouse: libinput mouse scrolling speed insanely fast"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=106036">bug 106036</a>
              from <span class="vcard"><a class="email" href="mailto:peter.ganzhorn@gmail.com" title="peter.ganzhorn@gmail.com">peter.ganzhorn@gmail.com</a>
</span></b>
        <pre>Ok, this sounds reasonable to me.

1. I reverted all changes to /lib/udev/hwdb.d/70-mouse.hwdb.

2. I reverted all previous changes in fallback_flush_wheels() and inserted the
following:

        if (device->model_flags & EVDEV_MODEL_SCROLLPOINT) {
                // Scrollpoint: Normalize scroll coords in wheel degrees and
use evdev_post_scroll().
                dispatch->wheel.y *= -1;
                normalize_delta(device, &dispatch->wheel, &wheel_degrees);
                evdev_post_scroll(device, time,
                          LIBINPUT_POINTER_AXIS_SOURCE_CONTINUOUS,
&wheel_degrees);
                dispatch->wheel.x = 0;
                dispatch->wheel.y = 0;
                return;
        }


Probably I should add a
  struct normalized_coords unaccel;
instead of abusing wheel_degrees which was already declared in
fallback_flush_wheels() for a final version of the changes?

This leads to the following output of libinput-debug-events while using the
scrollpoint:
 event13  POINTER_AXIS      +1.34s      vert 10.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +1.40s      vert 10.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +1.45s      vert 9.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +1.50s      vert 22.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +1.55s      vert 17.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +1.60s      vert 16.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +2.02s      vert -8.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +2.06s      vert -17.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +2.11s      vert -18.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +2.17s      vert -23.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +2.22s      vert -25.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +2.27s      vert -22.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +2.32s      vert -17.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +2.38s      vert -1.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +3.14s      vert 0.00 horiz -5.00* (continuous)
 event13  POINTER_AXIS      +3.19s      vert 0.00 horiz -14.00* (continuous)
 event13  POINTER_AXIS      +3.24s      vert 0.00 horiz -19.00* (continuous)
 event13  POINTER_AXIS      +3.30s      vert 0.00 horiz -30.00* (continuous)
 event13  POINTER_AXIS      +3.34s      vert 0.00 horiz -25.00* (continuous)
 event13  POINTER_AXIS      +3.40s      vert 0.00 horiz -11.00* (continuous)
 event13  POINTER_AXIS      +3.45s      vert 0.00 horiz -6.00* (continuous)
 event13  POINTER_AXIS      +3.81s      vert -1.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +3.86s      vert -3.00* horiz 0.00 (continuous)
 event13  POINTER_AXIS      +3.91s      vert -1.00* horiz 1.00* (continuous)
 event13  POINTER_AXIS      +3.96s      vert 0.00 horiz 6.00* (continuous)
 event13  POINTER_AXIS      +4.01s      vert 0.00 horiz 4.00* (continuous)
 event13  POINTER_AXIS      +4.06s      vert 0.00 horiz 6.00* (continuous)
 event13  POINTER_AXIS      +4.11s      vert -6.00* horiz 0.00 (continuous)

evemu-record shows this:
E: 1.375987 0002 0008 -003      # EV_REL / REL_WHEEL            -3
E: 1.375987 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +456ms
E: 1.431967 0002 0008 -034      # EV_REL / REL_WHEEL            -34
E: 1.431967 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +56ms
E: 1.479969 0002 0008 -047      # EV_REL / REL_WHEEL            -47
E: 1.479969 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +48ms
E: 1.535961 0002 0008 -054      # EV_REL / REL_WHEEL            -54
E: 1.535961 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +56ms
E: 1.583955 0002 0008 -056      # EV_REL / REL_WHEEL            -56
E: 1.583955 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +48ms
E: 1.639955 0002 0008 -051      # EV_REL / REL_WHEEL            -51
E: 1.639955 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +56ms
E: 1.687952 0002 0008 -022      # EV_REL / REL_WHEEL            -22
E: 1.687952 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +48ms
E: 1.943965 0002 0008 0005      # EV_REL / REL_WHEEL            5
E: 1.943965 0002 0006 0003      # EV_REL / REL_HWHEEL           3
E: 1.943965 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +256ms
E: 1.991957 0002 0008 0006      # EV_REL / REL_WHEEL            6
E: 1.991957 0002 0006 0020      # EV_REL / REL_HWHEEL           20
E: 1.991957 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +48ms
E: 2.047935 0002 0006 0024      # EV_REL / REL_HWHEEL           24
E: 2.047935 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +56ms
E: 2.095925 0002 0008 0001      # EV_REL / REL_WHEEL            1
E: 2.095925 0002 0006 0026      # EV_REL / REL_HWHEEL           26
E: 2.095925 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +48ms
E: 2.151923 0002 0006 0033      # EV_REL / REL_HWHEEL           33
E: 2.151923 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +56ms
E: 2.199941 0002 0008 0001      # EV_REL / REL_WHEEL            1
E: 2.199941 0002 0006 0035      # EV_REL / REL_HWHEEL           35
E: 2.199941 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +48ms
E: 2.247917 0002 0008 0007      # EV_REL / REL_WHEEL            7
E: 2.247917 0002 0006 0022      # EV_REL / REL_HWHEEL           22
E: 2.247917 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +48ms


The scrolling speed is now quite acceptable.

What exactly did you mean by "direction locking"?
Should the horizontal axis be locked while scrolling vertically and vice versa?
If yes, this is not working. I can scroll horizontally and vertically at the
same time currently. Since the scrollpoint is quite sensitive I would prefer
only one scrolling direction at a time - is this possible and what you meant?</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>