Open Bug 1933839 Opened 3 months ago Updated 2 months ago

[HiRes scroll] Tab-bar scrolling multiple tabs per click

Categories

(Firefox :: Tabbed Browser, defect)

Firefox 133
defect

Tracking

()

UNCONFIRMED

People

(Reporter: mozilla, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0

Steps to reproduce:

set toolkit.tabbox.switchByScrolling, use a high-resolution scroll wheel mouse on wayland. Logitech MX master series are one of the few mice with this feature

Actual results:

each click of the mouse wheel scrolls 3 tabs instead of 1. By scrolling less than a full detent, you can select specific tabs. Basically, the gain is incorrect.

Expected results:

scroll to the next/previous tab

I would be highly surprised if this wasn't a regression of https://bugzilla.mozilla.org/show_bug.cgi?id=1836886. I love the new high resolution scrolling support, and I'll love it more once this small issue is fixed.

The Bugbug bot thinks this bug should belong to the 'Firefox::Tabbed Browser' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Tabbed Browser

Tentatively moving this to Core :: Widget:Gtk for triage. Hey stransky, is there something that the front-end should do to support this new high-resolution scroll support for Wayland?

Component: Tabbed Browser → Widget: Gtk
Flags: needinfo?(stransky)
Product: Firefox → Core

(In reply to Mike Conley (:mconley) (:⚙️) from comment #3)

Tentatively moving this to Core :: Widget:Gtk for triage. Hey stransky, is there something that the front-end should do to support this new high-resolution scroll support for Wayland?

Yes, we may put the hi-res scrolling under pref. It's enabled by default now.

Well, perhaps we may update the tabswitch. Botond, any idea?
Thanks.

Flags: needinfo?(stransky) → needinfo?(botond)
Blocks: wayland
Priority: -- → P3
Summary: Tab-bar scrolling multiple tabs per click → [HiRes scroll] Tab-bar scrolling multiple tabs per click

(In reply to Mike Conley (:mconley) (:⚙️) from comment #3)

is there something that the front-end should do to support this new high-resolution scroll support for Wayland?

I don't have a hi-res mouse to test with unfortunately, but looking at what I believe is the relevant code in the frontend, my guess is that we need to upgrade this event listener from being a DOMMouseScroll listener to being a wheel listener.

DOMMouseScroll is a legacy event type that does not play well with smooth / continuous scrolling devices such as touchpads and hi-resolution mice, because its "delta" is represented as an integer number of lines, and these devices can produce scrolling by amounts which are a fraction of a line. (Bug 1705584 is another example of the sort of issue this can cause.) wheel does not have this problem since it supports a double delta value, as well as a pixel delta mode.

The part I'm not sure about, and which likely requires having a hi-res mouse to play around with, is what sort of check we need on the delta of the wheel event to ensure we only scroll one tab per wheel tick.

Mike, I'm going to bounce this back to you for now, maybe the above is enough to go on (e.g. maybe there are existing listeners in the front-end for wheel events that we can model this one on). Maybe Martin has a hi-res mouse available to test a potential patch with. (I'll also see about acquiring one for the Toronto office for future testing purposes.)

Flags: needinfo?(botond) → needinfo?(mconley)

Yes, I have such mouse so I can test it or debug it as you wish.

Thanks botond and stransky! We'll go ahead and move this back into Tabbed Browser, as it sounds like we probably have some work to do to adapt to more modern wheel events.

Component: Widget: Gtk → Tabbed Browser
Flags: needinfo?(mconley)
Product: Core → Firefox

The product::component has been changed since the backlog priority was decided, so we're resetting it.
For more information, please visit BugBot documentation.

Priority: P3 → --

#c0

mozilla@stephanie.is, I have a Logitech MX Master 3S, yet "toolkit.tabbox.switchByScrolling": true (in about:config) appears to scroll one tab at a time for me.

I have attached a video file which demonstrates this, albeit somewhat quickly.

Environment

  1. rpm -qa firefox returns firefox-133.0-2.fc41.x86_64.

  2. kinfo returns:

    Operating System       : Fedora Linux 41
    KDE Plasma Version     : 6.2.4
    KDE Frameworks Version : 6.8.0
    Qt Version             : 6.8.0
    Kernel Version         : 6.11.10-300.fc41.x86_64 (64-bit)
    Graphics Platform      : Wayland
    Processors             : 12 × AMD Ryzen 5 7600X 6-Core Processor
    Memory                 : 30.4 GiB of RAM
    Graphics Processor     : AMD Radeon RX 5700
    

(In reply to Mr. Beedell, Roke Julian Lockhart from comment #10)

Created attachment 9443310 [details]
Non-reproduction of #c0.

#c0

mozilla@stephanie.is, I have a Logitech MX Master 3S, yet "toolkit.tabbox.switchByScrolling": true (in about:config) appears to scroll one tab at a time for me.

I have attached a video file which demonstrates this, albeit somewhat quickly.

I'm on firefox 133.0, sway 1.10, on archlinux, using an MX Master 2S. Do you see smooth scrolling when scrolling slowly less than one "detent" on webpages on your setup? Here's a sample on libinput debug-events output for one click of scrolling on my machine.

 event5   POINTER_SCROLL_WHEEL        +0.130s	vert 7.50/60.0* horiz 0.00/0.0 (wheel)
 event5   POINTER_SCROLL_WHEEL      2 +0.226s	vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event5   POINTER_SCROLL_WHEEL      3 +0.258s	vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event5   POINTER_SCROLL_WHEEL      4 +0.314s	vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event5   POINTER_SCROLL_WHEEL      5 +0.330s	vert 1.88/15.0* horiz 0.00/0.0 (wheel)

The severity field is not set for this bug.
:jswinarton, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(jswinarton)
Severity: -- → S3
Flags: needinfo?(jswinarton)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: