У меня почти такая же проблема. При очень медленной прокрутке колеса все работает нормально, ровно пять строк одновременно в gedit. При вращении быстрее он случайным образом переходит вперед-назад назад с эффектом, при котором вы часто находитесь в одном и том же месте после прокрутки колеса на один оборот. В Windows он отлично работает без драйвера. Это мышь Thrust для мобильных телефонов BT.
У меня есть дикое предположение, в чем проблема.
Прежде всего, это колесо с дискретными положениями на колесе. Это означает, что при быстрой прокрутке колесо будет двигаться быстрее быстрее, быстрее, быстрее, быстрее, потому что отдельные позиции функционируют как разрыв.
Я полагаю, что аппаратные средства внутри мыши недостаточно хороши, чтобы различать взад и вперед и быстро быстрее быстрее быстрее. Я знаю внутреннюю работу электронной мыши, и она поддерживает такое объяснение.
Когда два луча света проникают через спицы в фотооптическом приемнике, и последний может знать только больше или меньше света, и из этого необходимо решить, в каком направлении движется колесо, может быть достаточно сложно написать программное обеспечение для этой работы, когда колесо вращается в та же скорость. Объяснение, почему это не проблема даже в универсальном драйвере Windows, состоит в том, что у MS была та же самая проблема с их собственными плохо сделанными мышами.
Решение
Напишите в драйвере режим, в который он будет переключаться при обнаружении быстрых изменений между колесом мыши и вперед. В этом режиме драйвер будет различать направление, противоположное последнему, скажем, в кольцевом буфере с пятью последними элементами.