Closed Bug 1880260 Opened 2 years ago Closed 2 years ago

CSS `cursor: move` and `cursor: all-scroll` displays `cursor: grabbing` instead

Categories

(Core :: Widget: Gtk, defect, P3)

Firefox 123
Desktop
Linux
defect

Tracking

()

VERIFIED FIXED
130 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr128 --- wontfix
firefox123 --- wontfix
firefox124 --- wontfix
firefox125 --- wontfix
firefox126 --- wontfix
firefox129 --- wontfix
firefox130 --- verified
firefox131 --- verified

People

(Reporter: floedelmann, Assigned: jordan)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 external file)

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

Steps to reproduce:

Go to https://developer.mozilla.org/en-US/docs/Web/CSS/cursor and hover over the move, all-scroll and grabbing cursor examples.

Actual results:

They all look the same, showing the grabbing cursor. (I think that this was not the case in Firefox 122, but I am not sure.)

Expected results:

The cursors for move and all-scroll (see https://bugzilla.mozilla.org/show_bug.cgi?id=275174) should be a cross with arrows on all four sides, not a grabbing hand. See the example images on the linked MDN page.

Similar (old, Mac-specific) bug: https://bugzilla.mozilla.org/show_bug.cgi?id=524103

I am not able to reproduce the issue on Ubuntu22.04 using Firefox build 123.0 and 124.0, move, all-scroll and grabbing cursor examples have the correct mouse at hover.
Flo Edelmann, were you using a specific build or add on? Thank you.

Flags: needinfo?(git)

I've installed Firefox via the PPA. Starting Firefox in troubleshoot mode shows (with all addons and themes temporarily disabled) makes no difference.
I'm using Kubuntu 22.04 (with KDE Plasma 5.27.10), but I checked that the problem persists with other cursor themes and the move cursor is showing correctly in other apps.

Flags: needinfo?(git)

The Bugbug bot thinks this bug should belong to the 'Core::Layout: Scrolling and Overflow' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Layout: Scrolling and Overflow
Product: Firefox → Core

I don't see the issue either on my Ubuntu 22.04.

Component: Layout: Scrolling and Overflow → CSS Parsing and Computation
Status: UNCONFIRMED → NEW
Component: CSS Parsing and Computation → Widget: Gtk
Ever confirmed: true
Keywords: regression
Regressed by: 1871863

Set release status flags based on info from the regressing bug 1871863

:jordan, since you are the author of the regressor, bug 1871863, could you take a look?

For more information, please visit BugBot documentation.

So for eCursor_all_scroll the previous code was using GDK_FLEUR so I used the corresponding move cursor to match the behavior. There is a all-scroll cursor name as well we can use instead but also it's not a common thing in linux.

For grabbing, the code was previously trying to first use closed-hand and if not found fallback to grabbing but since we are doing css only names nowdays I removed that and switched it to grabbing which is also what you'd expect from eCursor_grabbing. Additionally I am confident that code was broken before as the gdk_cursor_new_from_name api returns the default cursor befroe returning null so you'd only get closed-hand instead of default/leftptr if it existed and never the grabbing cursror in that branch.

Let me know if you'd want me to change the behavior of eCursor_all_scroll to be the all-scroll cursor instead of move

Flags: needinfo?(jordan)

Will look at it.

Flags: needinfo?(stransky)
Severity: -- → S3
Flags: needinfo?(stransky)
Priority: -- → P3

Set release status flags based on info from the regressing bug 1871863

Previously we'd use the GDK_FLEUR cursor which is the equivelant to
the "move" css cursor, however now that we use named cursors we can
request the "all-scroll" cursor instead.

(In reply to Jordan Petridis from comment #11)
Shouldn't the move cursor also be updated to gdk_cursor_new_from_name(defaultDisplay, "move") in the get_gtk_cursor_legacy function?

I am not sure about updating it in legacy even for all-scroll tbh given how the fragile the legacy cursors are. GDK_FLEUR and move should be functionally identical so we should be good.

Attachment #9394496 - Attachment description: WIP: Bug 1880260 - Fix all-scroll cursor on linux → Bug 1880260 - Fix all-scroll cursor on linux
Assignee: nobody → jordan
Status: NEW → ASSIGNED
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 130 Branch
Flags: qe-verify+

I managed to reproduce the originally reported issue on my Ubuntu 22.
In Firefox Release v128.0 and v129.0.2, the "move" and "all-scroll" cursors looks like a grabbing hand.
In Firefox Beta v130.0b8 and RC v130.0 and Nightly v131.0a1, the "all-scroll" cursor has been changed to look more like the web image example (cross with arrows on all four sides), but the "move" cursor is still displayed as a grabbing hand, like in Fx129 and before.

This appears to be the intended change according to the comments 12 and 13. Confirming fix. Thank you.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
OS: Unspecified → Linux
Hardware: Unspecified → Desktop
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: