does not use user-themed cursors for zoom-in or zoom-out css cursors

RESOLVED FIXED in Firefox 55

Status

()

Core
Widget: Gtk
P3
normal
RESOLVED FIXED
a year ago
4 months ago

People

(Reporter: andydecleyre, Unassigned)

Tracking

(Depends on: 1 bug)

50 Branch
mozilla55
All
Linux
Points:
---

Firefox Tracking Flags

(firefox55 fixed)

Details

(Whiteboard: tpi:+)

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(1 attachment)

(Reporter)

Description

a year ago
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0
Build ID: 20161213204721

Steps to reproduce:

Arch Linux, Firefox 50.1.0, Plasma Desktop

- use a desktop cursor theme with "zoom-in" and "zoom-out" cursors

- hover over the zoom-in and zoom-out demos at https://developer.mozilla.org/en-US/docs/Web/CSS/cursor


Actual results:

Non-themed zoom-in/out cursors are used instead of from the user's themed set.

It looks to me like, over at:

```
widget/gtk/nsWindow.cpp:5408-5413
```

in the `get_gtk_cursor` function, there ought to be an attempt to:

```
gdk_cursor_new_from_name(defaultDisplay, "zoom-in")
```

and

```
gdk_cursor_new_from_name(defaultDisplay, "zoom-out");
```

Probably that section should change from what it is:

```
case eCursor_zoom_in:
    newType = MOZ_CURSOR_ZOOM_IN;
    break;
case eCursor_zoom_out:
    newType = MOZ_CURSOR_ZOOM_OUT;
    break;
```

to something like this:

```
case eCursor_zoom_in:
    gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "zoom-in");
    if (!gdkcursor)
        newType = MOZ_CURSOR_ZOOM_IN;
    break;
case eCursor_zoom_out:
    gdkcursor = gdk_cursor_new_from_name(defaultDisplay, "zoom-out");
    if (!gdkcursor)
        newType = MOZ_CURSOR_ZOOM_OUT;
    break;
```


Expected results:

The themed set should be used.

Updated

a year ago
Component: Untriaged → Widget: Gtk
Product: Firefox → Core

Updated

a year ago
OS: Unspecified → Linux
Hardware: Unspecified → All
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3
Whiteboard: tpi:+
(Reporter)

Comment 1

a year ago
Bug still present in 51.0.1.
Comment hidden (mozreview-request)

Comment 3

a year ago
mozreview-review
Comment on attachment 8844766 [details]
Use GTK cursors for zoom-in or zoom-out css cursors (bug 1328724)

https://reviewboard.mozilla.org/r/118088/#review120264

Thanks.  I can't find any official documentation for these names, but adwaita-icon-theme provides cursors, and it seems sensible to follow the precedence there and in the CSS names.
Attachment #8844766 - Flags: review+

Comment 4

a year ago
Pushed by ktomlinson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/765fb89f4f89
Use GTK cursors for zoom-in or zoom-out css cursors r=karlt
GTK seems to think that CSS cursor names should work as X cursor names:
https://git.gnome.org/browse/gtk+/tree/gdk/gdkcursor.c?h=3.20.10#n250

But the fallback to left_ptr is scary:
https://git.gnome.org/browse/gtk+/tree/gdk/x11/gdkcursor-x11.c?h=3.20.10#n646
https://git.gnome.org/browse/gtk%2B/commit/?id=d9befb9086ba

This may bring back bug 1233868, in which case we'll need to back out this change.
See Also: → bug 1233868

Comment 6

a year ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/765fb89f4f89
Status: NEW → RESOLVED
Last Resolved: a year ago
status-firefox55: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
(In reply to Karl Tomlinson (:karlt) from comment #5)
> This may bring back bug 1233868, in which case we'll need to back out this
> change.

I have no zoom in/out cursors displayed in Ubuntu 16.04.

Comment 8

11 months ago
Same here, zoom-in/zoom-out cursors are no longer displayed with Linux Mint 18.1 Cinnamon 64-bit.

I did not change the theme after installing Linux Mint, and Themes settings currently says that "DMZ-White" is in use in "Mouse Pointer" category.

Observations:

- Switch to "Adwaita" as "Mouse Pointer" theme, the zoom-in/zoom-out cursors are then properly display on the doc/demo MDN page[1]
- Switch back to "DMZ-White", the zoom-in/zoom-out cursors are *still* properly displayed.
- Quit then launch Nightly, the zoom-in/zoom-out cursors are no longer properly displayed.
- Switch to "Adwaita" as "Mouse Pointer" theme and quit then launch Nightly, zoom-in/zoom-out are properly displayed.

So it appears if "Adwaita" was enabled at any time at least once while Nightly is running will fix the zoom-in/zoom-out cursor issue even if going back to non-"Adwaita". Re-booting Nightly without "Adwaita" however and the issue is back.

[1] https://developer.mozilla.org/en-US/docs/Web/CSS/cursor?v=example
Bug 1428755 is filed on the missing zoom-in/out cursors regression noted in comment 7 / 8, I think.  I'll copypaste comment 8 over to that bug.
You need to log in before you can comment on or make changes to this bug.