On Wed, 24 Jul 2024 17:10:15 GMT, Andy Goryachev <[email protected]> wrote:

>> (sorry I missed to reply)
>> 
>> I believe the comment already states what are we taking into account, but 
>> this is a more detailed explanation:
>> 
>> - a mouse wheel only has vertical scroll events (`dx == 0`, so `abs(dy) > 
>> abs(dx)`), then we just take `dy` to produce the horizontal scroll offset.
>> - a trackpad has both scroll events, and we take whichever is bigger. 
>> Typically the user will do a horizontal scrolling if tabs are horizontally 
>> laid out, and therefore abs(dy) <<< abs(dx), so we take `dx` to produce the 
>> horizontal scroll offset, ignoring the smaller `dy` (that wouldn't have any 
>> effect in any case).
>> 
>> I'm happy to reword the comment if needed.
>
> Thank you!
> 
> A larger question is that ideally we would need a mechanism to differentiate 
> trackpad from mouse events, as they sometimes require different handling.  We 
> can't fully rely on the fact that either dx or dy is exactly 0.0, since 
> theoretically we could get those events from the trackpad.
> 
> What do you think?

In this case, the bigger value from the scrolling gesture prevails, ignoring 
the other small one (it doesn't matter if it is exactly 0 or not).
 
For  the`TabPane` case, that is good enough, since we only want to scroll in 
one direction, and it really doesn't matter if the source is a mouse wheel or a 
trackpad.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1486#discussion_r1690570921

Reply via email to