I started a new thread as the original topic no longer matched.
I installed 8.1.0.2 x64 CS and enabled logging in gen-wheels. Matt was right: wheel-steps-mode is indeed set to 'integer while gen-wheels runs in DrRacket's editor. The only two changes required to get smooth/accurate scrolling on touchpad gestures and trackpoint are therefore:
In share\pkgs\gui-lib\mred\private\wx\win32\window.rkt's gen-wheels private method:
(let loop ([amt (* wheel-scale amt)])
to
(let loop ([amt amt])
and reduce WHEEL_DELTA by a factor of 4, such as gen-wheels looks like:
(define/private (gen-wheels w msg lParam amt down up)
(define WHEEL_DELTA_S (/ WHEEL_DELTA 4))
(let loop ([amt amt])
(cond
[((abs amt) . < . WHEEL_DELTA_S)
(case wheel-steps-mode
[(one integer) amt]
[(fraction)
(unless (zero? amt)
(do-key w msg down lParam #f #f void (/ amt (exact->inexact WHEEL_DELTA_S))))
0.0])]
[(negative? amt)
(case wheel-steps-mode
[(one)
(do-key w msg down lParam #f #f void 1.0)
(loop (+ amt WHEEL_DELTA_S))]
[(integer)
(define steps (quotient (- amt) WHEEL_DELTA_S))
(do-key w msg down lParam #f #f void (exact->inexact steps))
(loop (+ amt (* steps WHEEL_DELTA_S)))]
[else
(do-key w msg down lParam #f #f void (/ (- amt) (exact->inexact WHEEL_DELTA_S)))
0.0])]
[else
(case wheel-steps-mode
[(one)
(do-key w msg up lParam #f #f void 1.0)
(loop (- amt WHEEL_DELTA_S))]
[(integer)
(define steps (quotient amt WHEEL_DELTA_S))
(do-key w msg up lParam #f #f void (exact->inexact steps))
(loop (- amt (* steps WHEEL_DELTA_S)))]
[else
(do-key w msg up lParam #f #f void (/ amt (exact->inexact WHEEL_DELTA_S)))
0.0])])))
Happy Monday,
Dex