Closed
Bug 709259
Opened 13 years ago
Closed 13 years ago
Appearance of "spinning" cursor regressed sometime between Thunderbird 8 and 9
Categories
(Core :: Widget: Gtk, defect)
Tracking
()
RESOLVED
FIXED
mozilla11
People
(Reporter: chrisccoulson, Assigned: chrisccoulson)
References
Details
(Keywords: regression)
Attachments
(3 files, 2 obsolete files)
34.63 KB,
video/ogg
|
Details | |
37.96 KB,
video/ogg
|
Details | |
4.88 KB,
patch
|
karlt
:
review+
lsblakk
:
approval-mozilla-esr10-
|
Details | Diff | Splinter Review |
I've noticed whilst running Thunderbird 9 beta that when my mailboxes refresh, my mouse pointer changes to a really ugly busy cursor. In Thunderbird 8, the cursor seemed to not look too bad. I just rebuilt the latest comm-beta after reverting http://hg.mozilla.org/releases/mozilla-beta/rev/875cb4f20eac, and it seems to fix it. I've not fully investigated why this patch would break it just yet. The less attractive spinning cursor also appears occasionally in Firefox too, although it appears a lot more in Thunderbird. This can be easily reproduced in Firefox or Thunderbird by using a JS shell and doing window.setCursor("spinning"). I've attached 2 videos of me doing this before and after reverting the mentioned patch
Assignee | ||
Comment 1•13 years ago
|
||
See Also: → https://launchpad.net/bugs/901838
Assignee | ||
Comment 2•13 years ago
|
||
Ok, so this is a side-effect of no longer using gdk_cursor_new_from_pixmap (as it's not available in GTK3). gdk_cursor_new_from_pixmap uses XCreatePixmapCursor to create a cursor, and this does some magic via libxcursor to match a hash of the cursor bitmap to a themed pointer (left_ptr_watch), which gave us the nice looking pointer. There doesn't seem to be any support in xlib or gdk for creating a pointer of this type with any other mechanism though :(
Comment 3•13 years ago
|
||
Is gdk_cursor_new_from_name() an option?
Comment 4•13 years ago
|
||
FWIW, I removed that code, because we got rid of pixmaps in GTK3. I certainly did not intend to remove any functionality previously available, nor do I think I did that. Of course, it made some things different and possibly even harder. From looking at the patch, I can't understand why it would break either though, because gdk_cursor_new_from_pixmap() cannot be used to create animated cursors afaics. I guess what I'm saying is: If there's functionality missing in GTK, poke us so we can add it back.
Comment 5•13 years ago
|
||
Oh, I'm just now seeing the explanation in comment 2. Do you have a cgit link to the X code for this handy? Because this sounds like something really really ugly inside X (wow, what a surprise ;))
Comment 6•13 years ago
|
||
Looks like this is the Xcursor code: http://cgit.freedesktop.org/xorg/lib/libXcursor/tree/src/xlib.c?id=e086eb1bf49f2a8c270eaebd5beb595c1dc2973e#n415 gdk_cursor_new_from_name() also uses XcursorLibraryLoadCursor(), so it should be possible to get the same behavior. If the cursor can also be found under the "left_ptr_watch" name then that would be preferable for the lookup. As a last resort, the name from the hash can be used.
Comment 7•13 years ago
|
||
Looks like a left_ptr_watch lookup should be the same as a 08e8e1c95fe2fc01f976f1e063a24ccd. http://cgit.freedesktop.org/xorg/data/cursors/tree/handhelds/Makefile.cfg I guess we can't be certain the lookup will succeed, so we'd still have to fallback to the pixbuf.
Comment 8•13 years ago
|
||
Yeah, I think the solution is to try a new_from_name() first for all cursors and if that returns NULL fall back to the image (or the default cursor if you're reasonably sure everybody supports the cursor you care about).
Assignee | ||
Updated•13 years ago
|
Assignee: nobody → chrisccoulson
Assignee | ||
Comment 9•13 years ago
|
||
Attachment #580970 -
Flags: review?(karlt)
Assignee | ||
Comment 10•13 years ago
|
||
Oops, that wasn't the most recent version
Attachment #580970 -
Attachment is obsolete: true
Attachment #580970 -
Flags: review?(karlt)
Attachment #580971 -
Flags: review?(karlt)
Comment 11•13 years ago
|
||
Comment on attachment 580971 [details] [diff] [review] Try creating a named cursor before a bitmap cursor Thanks very much.
Attachment #580971 -
Flags: review?(karlt) → review+
Comment 12•13 years ago
|
||
Comment on attachment 580971 [details] [diff] [review] Try creating a named cursor before a bitmap cursor >+ { moz_none_bits, moz_none_mask_bits, 0, 0, NULL } > newType = MOZ_CURSOR_NONE; > break; >+ // If by now we don't have a xcursor, this means we have to make a custom >+ // one. First, we try creating a named cursor based on the hash of our >+ // custom bitmap, as libXcursor has some magic to convert bitmapped cursors >+ // to themed cursors >+ if (newType != 0xFF) { >+ gdkcursor = gdk_cursor_new_from_name(gdk_display_get_default(), >+ GtkCursors[newType].hash); Doesn't this need to check that hash is non-null?
Attachment #580971 -
Flags: review+ → review?(karlt)
Updated•13 years ago
|
Attachment #580971 -
Flags: review?(karlt) → review-
Assignee | ||
Comment 13•13 years ago
|
||
Good catch, thanks
Attachment #580971 -
Attachment is obsolete: true
Attachment #581198 -
Flags: review?(karlt)
Updated•13 years ago
|
Attachment #581198 -
Flags: review?(karlt) → review+
Updated•13 years ago
|
Keywords: checkin-needed
Whiteboard: [not part of WINNT build]
Comment 14•13 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/596e3eca4196
Status: NEW → RESOLVED
Closed: 13 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Whiteboard: [not part of WINNT build]
Target Milestone: --- → mozilla11
Updated•13 years ago
|
Comment 16•13 years ago
|
||
Please nominate for Beta 10 approval if this fix is considered low risk.
tracking-firefox10:
--- → +
Comment 17•12 years ago
|
||
Comment on attachment 581198 [details] [diff] [review] Try creating a named cursor before a bitmap cursor (v2) [Approval Request Comment] User impact if declined: Regression in aspect of various mouse cursors not following the system theme on Linux systems in Firefox with ui.use_activity_cursor set to true, and in Thunderbird. Fix Landed on Version: 11 Risk to taking this patch (and alternatives if risky): String changes made by this patch: None
Attachment #581198 -
Flags: approval-mozilla-esr10?
Comment 18•12 years ago
|
||
(In reply to Mike Hommey [:glandium] from comment #17) > Risk to taking this patch (and alternatives if risky): (forgot to fill here) very low risk, and has been tested widely for a while now (since it was released in 11). It would be nice if it was applied on ESR, though.
Comment 19•12 years ago
|
||
Comment on attachment 581198 [details] [diff] [review] Try creating a named cursor before a bitmap cursor (v2) this didn't make it into beta 10 and it doesn't meet the criteria for ESR.
Attachment #581198 -
Flags: approval-mozilla-esr10? → approval-mozilla-esr10-
You need to log in
before you can comment on or make changes to this bug.
Description
•