Closed Bug 464315 Opened 17 years ago Closed 17 years ago

make Mac OS X cursor code 64-bit ready

Categories

(Core :: Widget: Cocoa, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.9.2a1

People

(Reporter: jaas, Assigned: jaas)

References

Details

Attachments

(1 file, 1 obsolete file)

Some key cursor methods in our Mac OS X cursor implementation are not available in 64-bit. We still use Quickdraw's SetCursor function to display many cursors, and we still load an old-style .rsrc file for cursor images.
Depends on: 358159, 464313
Blocks: 468509
Attached patch fix v1.0 (obsolete) — Splinter Review
This makes our cursor code 64-bit safe by removing usage of all APIs that don't exist in 64-bit Mac OS X. It comes with some behavioral changes, some we should fix and others we probably don't need to. eCursor_wait: This is now just a regular cursor. 64-bit Mac OS X does not provide such a cursor. eCursor_copy: This is now just a regular cursor. 64-bit Mac OS X does not provide such a cursor. eCursor_alias: This is now just a regular cursor. 64-bit Mac OS X does not provide such a cursor. eCursor_context_menu: This is now just a regular cursor. 64-bit Mac OS X does not provide such a cursor. eCursor_spinning: This is now just a regular cursor. 64-bit Mac OS X does not provide such a cursor. eCursor_no_drop, eCursor_not_allowed: This is now just a regular cursor. 64-bit Mac OS X does not provide such a cursor. I'll see what we can do about using custom images for some of these.
Attached patch fix v1.1Splinter Review
This implements "eCursor_wait" and "eCursor_spinning", the most important of the cursors missing in 64-bit Mac OS X. I implemented them using manual animation of Cocoa cursors based on images. Whether or not we should be using these cursors in Firefox any more is another issue. I think we should take this patch now despite the remaining missing cursors. They aren't critical and we can file separate bugs on implementing them. This patch uses the standard cursor for the missing cursors.
Attachment #356580 - Attachment is obsolete: true
Attachment #356585 - Flags: review?(mstange)
Attachment #356585 - Flags: review?(mstange) → review+
Comment on attachment 356585 [details] [diff] [review] fix v1.1 I can't review the Makefile changes (I have zero experience with makefiles), but they make sense to me. +/*! @method cocoaCursorWithImageNamed:hotSpot: + @abstract Create a Cocoa NSCursor object with a Gecko image resource name and a hotspot point. Here the alignment is a little wrong. Other than that, the patch looks good to me. The old cursorWithFrames method as well as the spinX.tiff images appear to have been unused by Firefox. Are they used by Camino?
Attachment #356585 - Flags: superreview?(roc)
Attachment #356585 - Flags: superreview?(roc) → superreview+
(In reply to comment #3) > The old cursorWithFrames method as well as the spinX.tiff images appear to have > been unused by Firefox. Are they used by Camino? I know at one time they were, because at one time someone had made a custom spin cursor that was colorized. However, according to bug 392623, they haven't been since at least 1.9.0; the ones in the .rsrc were overriding the .tiffs instead. Looks like bug 358159 is now essentially a dupe of this bug, too.
The spinX.tiff images are used in my patch here. They weren't used before. And yes, fixing this will fix 358159.
(In reply to comment #3) > Here the alignment is a little wrong. You didn't fix this in your checkin.
pushed to mozilla-central http://hg.mozilla.org/mozilla-central/rev/77cadc513819 Markus, I'll fix that in a followup checkin, sorry.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Depends on: 489734
I didn't find any follow-up bug for the missing cursors. I filed bug 489734.
Looks like this caused 533801.
Target Milestone: --- → mozilla1.9.2a1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: