Open Bug 1428755 Opened 6 years ago Updated 2 years ago

[Ubuntu] Zooming in on an image doesn't change the cursor into a magnifying-glass

Categories

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

All
Linux
defect

Tracking

()

Tracking Status
firefox-esr60 --- wontfix
firefox57 --- wontfix
firefox58 --- wontfix
firefox59 --- wontfix
firefox60 --- wontfix
firefox61 --- wontfix
firefox62 --- fix-optional

People

(Reporter: obotisan, Assigned: emilio)

References

Details

(Keywords: regression)

Attachments

(1 file)

[Affected versions]:
- Latest Nightly 59
- beta 58.0b14
- Firefox 57.0.4

[Affected platforms]:
- Ubuntu 16.04 x64

[Steps to reproduce]:
1. Launch Firefox and open an image (ex. http://www.catster.com/wp-content/uploads/2017/08/A-fluffy-cat-looking-funny-surprised-or-concerned.jpg)
2. Use Ctrl+scroll to zoom in until the image is bigger than the browser window
3. Observe the cursor's behaviour.

[Expected result]:
- The cursor changes into a magnifying-glass that shows the actions you can do (zoom in or zoom out)

[Actual result]:
- The cursor remains the same.

[Regression range]:
- Last good revision: 19289cc8bf6ffce3b2067fbe91aebea5a356d00815:16.87 
- First bad revision: 7ac30073bcac75a1f0217a342300233a4a2d939e15:16.87
- Pushlog:https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=19289cc8bf6ffce3b2067fbe91aebea5a356d008&tochange=7ac30073bcac75a1f0217a342300233a4a2d939e

I assume that the bug 1328724 is the cause of this issue.
I can't reproduce, on Ubuntu 17.10.  I tested Firefox Nightly 59.0a1 (2018-01-08) and the ubuntu package of Firefox Release 57.0.4 (64-bit) -- and in both, I get Expected Results. (I do see a magnifying glass when performing the STR.)

Maybe there's something Ubuntu-version-specific (note that my Ubuntu is newer than Oana's).  It does sound like some others are able to reproduce, per bug 1328724 comment 7 and bug 1328724 comment 8 -- just not me.
Blocks: 1328724
Priority: -- → P3
Component: Layout: Images → Widget: Gtk
Based on a user's comment on bug 1328724, it sounds like the issue here is theme-specific -- according to this user, you get expected behavior if you've got the "Adwaita" cursor theme, but broken behavior from other themes like DMZ-White (and the theme has to be chosen before you start Firefox).  Incidentally, Adwaita is the theme that I am using (and indeed, I'm getting correct/expected behavior).

Here's the full text of that user's analysis from bug 1328724 comment 8:
> 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
I had the same problem with the DMZ cursor theme. Over Twitter I couldn’t reach @jimmac, the original creator of this theme. In October 2016 he wrote on https://github.com/linuxmint/Cinnamon/pull/5859#issuecomment-257363722 that DMZ is bitrotten and no longer maintained. So I made my own cursor theme cz-Viator which should be as plain as DMZ: https://www.opendesktop.org/p/1229367/ – it’s without the subtle grey shading of DMZ, but maybe it’s of use for somebody missing the zoom cursor. Other similar themes are OpenZone https://www.gnome-look.org/p/999999/ or Hackneyed https://www.opendesktop.org/p/999998
We did a series of test and noticed that this bug is now reproducing on Windows 10 x32, Windows 7 x64 and macOS 10.12 using beta 61.0b4 and latest Nightly 62.0a1. Also the bug is reproducing for zoom out action as well. 

The magnifying glass only appears if the image becomes bigger than the browser window. If the image is clicked, it resizes to the normal size.
OS: Linux → All
Summary: [Ubuntu] Zooming in on an image doesn't change the cursor into a magnifying-glass → Zooming in or out an image doesn't change the cursor into a magnifying-glass
(In reply to Oana Botisan from comment #4)
> We did a series of test and noticed that this bug is now reproducing on
> Windows 10 x32, Windows 7 x64 and macOS 10.12

Would you mind filing a separate bug on that? (and if you can, track down a regression range to see when that non-linux brokenness started)

I'm assuming the Windows/Mac brokenness started due to an unrelated (more recent) change, given that the original regression that we identified here was from a GTK-specific change.

Also, one update to an earlier comment of mine:
(In reply to Daniel Holbert [:dholbert] from comment #2)
> [...] you get expected behavior if
> you've got the "Adwaita" cursor theme, but broken behavior from other themes
> like DMZ-White (and the theme has to be chosen before you start Firefox). 
> Incidentally, Adwaita is the theme that I am using (and indeed, I'm getting
> correct/expected behavior).

Update on this: while I was previously on Ubuntu 17.10, I've now upgraded to using Ubuntu 18.04 now, and I now don't have any "Adwaita" cursor theme available.  And instead, Ubuntu now seems to default to the "DMZ-White" cursor theme.  And indeed, I'm now affected by this bug. (And my mozregression regression-range is consistent with bug 1328724 being the cause -- builds before that landing do still show me a zoom-out-cursor.)
Flags: needinfo?(oana.botisan)
This is most likely the same issue as bug 1233868.

I don't see zoom-in/zoom-out cursors in
https://packages.ubuntu.com/bionic/all/dmz-cursor-theme/filelist

gdk_cursor_new_from_name() should return NULL if the cursor is not found.
https://developer.gnome.org/gdk3/stable/gdk3-Cursors.html#gdk-cursor-new-from-name

But a bug was introduced in GTK 3.17 so that it now returns a new distinct
cursor behaving like left_ptr, if the name is not found.
https://bugzilla.gnome.org/show_bug.cgi?id=760141

That bug was only partially fixed in
https://gitlab.gnome.org/GNOME/gtk/commit/d9befb9086ba7882b5c2813518ab3c3e02c0ed7f

When running under X11, I guess XcursorLibraryLoadImages() could be used to
test that the name exists, but that scans filesystem directories, and so
should be cached.
So the issue found in comment 4 can be tracked it bug 1461610. 
I will leave this one just Ubuntu related, because you were right. They have different regression ranges and relative different behaviours.
Flags: needinfo?(oana.botisan)
OS: All → Linux
Summary: Zooming in or out an image doesn't change the cursor into a magnifying-glass → [Ubuntu] Zooming in on an image doesn't change the cursor into a magnifying-glass
Assignee: nobody → emilio

Not amazing, but should do the trick. Cursors are cached anyway so it should be
fine to be slightly slower.

I don't have Ubuntu but this should work. Does it work for you Jonathan?

Flags: needinfo?(jfkthame)

No, I still don't see zoom-in/out cursors, I'm afraid. gdk_cursor_new_from_name is returning a separate cursor for each of zoom-in and zoom-out, not simply a reference to the standard leftPtrCursor.

Flags: needinfo?(jfkthame)

buuh

What about the new version?

Flags: needinfo?(jfkthame)

Nope, sorry - I still get a left arrow. I expect gdk_cursor_get_cursor_type is just comparing against the standard cursor that gdk_cursor_new_for_display would have returned, or something like that, but doesn't recognize an entirely separate cursor that's been created with the same image.

Flags: needinfo?(jfkthame)

BTW, while we're here, I notice that cursor: context-menu has the same problem: it seems to be missing from the theme, and we don't get a fallback because gdk just gives us a copy of the standard arrow cursor.

(Trying Chrome on the same system, they do manage to fall back to a built-in cursor for these three, although they look pretty terrible on my high-res screen because they're not scaled appropriately for the resolution, and appear minuscule.)

Chromium seems to use XcursorLibraryLoadCursor directly rather than gdk. I uploaded a patch that tries to detect it properly. But I didn't manage to get it to link, and I don't have that much time left for the day so I just left it there.

Anyhow. It seems in the upcoming gdk 4, fallback cursors are created eagerly, which is nice, but we'd still get the left pointer for the zoom-in icon :/

I'll file an issue upstream to see how to best fix it.

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: