Thanks for this summary! But I remain puzzled...

As I understand it, `wheel-scale` ends up being 4 on your machine. So
removing the multiplication by `wheel-scale` means that `amt` is 1/4 of
what it used to be. But `amt` is effectively always divided by
`WHEEL_DELTA`, which you've also divided by 4 in switching to
`WHEEL_DELTA_S`.

It seems like those factors of 1/4 would cancel out. Do the numbers
passed to `do-key` end up being different in some way that I'm missing?

Matthew

At Mon, 12 Apr 2021 04:13:16 -0700 (PDT), Dexter Lagan wrote:
>   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
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email 
> to racket-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-users/28e13460-c86d-4967-aa25-5527d672e
> 711n%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/20210415054949.249%40sirmail.smtps.cs.utah.edu.

Reply via email to