(In reply to Olli Pettay [:smaug] from comment #113)
> (In reply to Masayuki Nakano [:masayuki] (JST, +0900) from comment #112)
> > Anyway, I don't think that we should use this feature when the user's device
> > is obviously non-legacy pointing device, i.e., it supports diagonal scroll.
> > What do you think?
> But this is enabled on touchpads too, if the pref is set. Could we somehow
> enable it on mouse input only, and not touchpad?
Unfortunately, on any platforms, we cannot check if mouse scroll event came from what kind of device.
There are some options:
1. Take current approach -- treat "pure" vertical wheel operation as horizontal scroll and
1-1. Handle deltaX as is (current approach).
1-2. Handle deltaX as vertical scroll (I don't like this and incompatible with Chrome).
1-3. Ignore deltaX, so, if only deltaX is non-zero, does nothing.
2. Treat any vertical wheel operation as horizontal scroll (even if it's diagonal operation) and/but
2-1. Handle deltaX as vertical scroll (same as 1-2).
2-2. Ignore deltaX (same as 1-3).
If user operates wheel diagonally but native events come separately, it might be the best to ignore deltaX. E.g., we can avoid performing 2 default actions (e.g., both horizontal scroll and navigating history), but this means that the default action will always be ignored if it matches with new pref's modifier.
(In reply to Olli Pettay [:smaug] from comment #113)
> (In reply to Masayuki Nakano [:masayuki] (JST, +0900) from comment #112)
> > Anyway, I don't think that we should use this feature when the user's device
> > is obviously non-legacy pointing device, i.e., it supports diagonal scroll.
> > What do you think?
> But this is enabled on touchpads too, if the pref is set. Could we somehow
> enable it on mouse input only, and not touchpad?
Unfortunately, on any platforms, we cannot check if mouse scroll event came from what kind of device.
There are some options:
1. Take current approach -- treat "pure" vertical wheel operation as horizontal scroll and
1-1. Handle deltaX as is (current approach).
1-2. Handle deltaX as vertical scroll (I don't like this and incompatible with Chrome).
1-3. Ignore deltaX, so, if only deltaX is non-zero, does nothing.
2. Treat any vertical wheel operation as horizontal scroll (even if it's diagonal operation) and/but
2-1. Handle deltaX as vertical scroll (same as 1-2).
2-2. Ignore deltaX (same as 1-3).
If user operates wheel diagonally but native events come separately, it might be the best to ignore deltaX. E.g., we can avoid performing 2 default actions (e.g., both horizontal scroll and navigating history), but this means that the default action will always be ignored if it matches with new pref's modifier.