Scrollbar flickering on wayland
Categories
(Core :: Widget: Gtk, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox89 | --- | fixed |
People
(Reporter: tom, Assigned: tom)
References
(Blocks 1 open bug)
Details
Attachments
(3 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0
Steps to reproduce:
- Start Firefox with Wayland enabled. (MOZ_ENABLE_WAYLAND=1)
- Open a page that shows a vertical scrollbar.
- Position the mouse over the scrollbar, at the rightmost pixel of the screen.
- Move the mouse further to the right, keeping the cursor over the scrollbar.
Actual results:
The scrollbar flickers, so that clicking the mouse sometimes fails to "grab" the scrollbar. (See the behavior in the attached video)
Expected results:
The scrollbar should remain clickable as long as the cursor is positioned over it.
Observed with the arch linux firefox 86.0 package, and nightly 88.0a1
Reproducible on different compositors, including sway/wlroots and weston.
Comment 1•4 years ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::Widget: Gtk' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.
Comment 2•4 years ago
|
||
I'm unable to reproduce on Gnome/Mutter/Fedora 33.
Comment 3•4 years ago
|
||
I can reproduce this on fedora 33, gnome & mutter 3.38.3, firefox 85.0.1, by having firefox in full-screen and moving the cursor on this very page to the right edge of the screen, at the limit of the scrollbar. I see the same flickering as in the video while the cursor is moving along the edge, and it stops with a random "hover or not" state when I stop moving the cursor.
(I originally came here because I thought someone finally reported the flickering corruption (stride issue I think) I'm seeing on the firefox scrollbar on sway, but that's not it... I need to catch it in the act and report it ^^)
I believe I've found the issue. When using GDK_BACKEND=x11, the coordinates in the GdkEventMotion callback will be floored floating-point values, but with wayland, the coordinates may be fractional. When the coordinates are converted to device pixels, they are rounded. As a result, the coordinates of the WidgetMouseEvent are occasionally 1 pixel greater than the actual cursor position.
This also results in some other visual glitches with very small mouse movements, as you can see in the new attached recording.
Updated•4 years ago
|
Comment 8•4 years ago
|
||
bugherder |
Description
•