Open Bug 280331 Opened 20 years ago Updated 2 years ago

Mozilla's special application cursors and CSS3 cursors should fit to the underlying OS cursor theme

Categories

(Core :: Widget: Win32, defect)

x86
Windows XP
defect

Tracking

()

People

(Reporter: mithgol, Unassigned)

References

(Depends on 7 open bugs)

Details

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0 This problem was first mentioned two days ago in e-mail conversation between timeless@myrealbox.com and bugzilla@gtalbot.org -- timeless gave there an important comment: timeless> the windows cursors are user timeless> definable, mine have drop shadows, and if i needed bigger cursors for timeless> all of my apps, i could and would do so globally. timeless> i think in that timeless> respect i'm a fairly typical user. (as a power user, i might go in and timeless> forcibly change any app's cursors to match what i want, but expecting timeless> normal users to have to do that isn't very reasonable.) So, in Windows, under Start --> Control Panel --> Mouse, there are only fifteen system cursors; comparing them to http://www.w3.org/TR/css3-ui/#cursor0 specifications, we may identify them as (in order of appearance; numbered ones have CSS3 equivalent, the other two are Windows-specific): 1) default, 2) help, 3) progress, 4) wait, 5) crosshair, 6) text, #) [custom cursor for handwriting], 7) not-allowed, 8) ns-resize, 9) ew-resize, 10) nwse-resize, 11) nesw-resize, 12) move, #) [custom cursor for special selection], 13) pointer. There's also a usual practice of cloning resize cursors, and it's adopted by Mozilla and Firefox: ew-resize --> e-resize, w-resize ns-resize --> n-resize, s-resize nesw-resize --> ne-resize, sw-resize nwse-resize --> nw-resize, se-resize However, after all that tricks, there are nine CSS3 cursors with no Windows equivalent: 1) context-menu, [ bug 258960 ] 2) cell, 3) vertical-text, [ bug 163174 ] 4) alias, 5) copy, 6) no-drop, [ bug 275173 ] 7) col-resize, [ bug 163174 ] 8) row-resize, [ bug 163174 ] 9) all-scroll. [ bug 275174 ] Mozilla does also have (or will have) some extra non-system cursors, see http://www.gtalbot.org/HTMLJavascriptCSS/Cursors.html and the following bugs: Bug 246481 - Customized cursor when hovering a .pdf link Bug 230337 - Proper cursors for bookmark dragging Bug 230081 - Proper cursors for frame (or pane) resizing Bug 169678 - Cursor shape should reflect the type of link hovered on (e.g. pop-up/download/mailto...) (different cursors for links to new windows) These extra cursors (both CSS3 and Mozilla's own) cannot be changed by applying Windows cursor themes at the system Control Panel. Their shape and even size may differ from system's cursor set. That's a bug, that is to be fixed. timeless@myrealbox.com is inclined to think that this bug with non-system cursors can never be fixed, and so he wontfixed bug 258960 (which blocks bug 1996), and he's also inclined to wontfix three of four more similar bugs. However, we have nine CSS3 cursors which are not system on Windows. So Mozilla and/or Firefox cannot get rid of non-system cursors on Windows and be entirely compatible with CSS3 at the same time. So, bug 258960 has to be unwontfixed, and this bug added to dependencies to bug 258960 (and to most of other bugs introducing non-system cursors): added not as a blocker, but as a blocked one, because achieving CSS3 compatibility has higher importance, and its unwanted consequences are, after all, only consequences, and cannot be fixed beforehand. Some means of fixing this bug: -=- on Mozilla start, check for Windows system cursor theme and change non-Windows CSS3 cursors and extra Mozilla cursors accordingly -=- optionally allow Mozilla XPI themes to change Windows system cursor settings, when a bunch of CSS3 cursors (including equivalents to Windows system cursor) is provided in the Mozilla theme XPI file -=- optionally allow Windows system dialog (Start --> Control Panel --> Mouse) to change Mozilla cursor settings instantly (without having to wait for browser restart) -=- tweak Windows system dialog (Start --> Control Panel --> Mouse), adding controls for Mozilla cursors (this is technically possible: Genius Netscroll+ driver is adding extra controls there for extra buttons of Genius mice) Reproducible: Always Steps to Reproduce: 1. When in Windows, visit Start --> Control Panel --> Mouse dialog. 2. Change Windows system cursor settings. 3. Start Mozilla. Actual Results: Some CSS3 cursors (vertical-text, col-resize, row-resize) don't reflect system cursor theme. Expected Results: Mozilla's special application cursors and CSS3 cursors (even non-system) should fit to the underlying OS cursor theme seamlessly. After adding this bug to Bugzilla, I'll introduce a dozen of blockers for it, including all the bugs I know about they demand extra cursors to be implemented in Mozilla. timeless@myrealbox.com, I pray for your patience, don't even think of making a bloody nightmare of wontfixing all the blockers of this bug ;-)) Final idea: we need 20-40 variations of each extra cursor, each variation intended for a known Windows cursor theme. It is possible. Windows XP cursor themes: 3D-Bronze 3D-White Conductor Dinosaur Hands 1 Hands 2 Magnified Old Fashioned Variations Windows Animated Windows Black Windows Black (extra large) Windows Black (large) Windows Default Windows Inverted (extra large) Windows Inverted (large) Windows Inverted Windows Standard (extra large) Windows Standard (large)
CCing Talbot, who might be very interested in this bug. Adding the above mentioned dependencies: bug 258960 bug 163174 bug 275173 bug 275174 bug 246481 bug 230337 bug 230081 bug 169678
CCing timeless@myrealbox.com -- glad to see you here, as this bug is entirely based on your really valuable idea. Would you be so kind to unwontfix bug 258960, which is a separate problem? What you needed was an ability of applying cursor themes, especially via Windows settings.
CCing Mats Palmgren, who once fixed bug 163174 (that bug first introduced CSS3-needed cursors which were not system on Windows). Adding bug 90213 and bug 189719 as actual blockers. Adding CSS2/3 cursor property support (it's a metabug) -- bug 1916 -- as a tracker-blocker. May happen to be useful.
Depends on: 1916, 90213, 189719
Status: UNCONFIRMED → NEW
Ever confirmed: true
Assignee: guifeatures → general
Component: XP Apps: GUI Features → GFX
Product: Mozilla Application Suite → Core
QA Contact: ian
Version: unspecified → Trunk
i'll unwontfix it later. and again, the default themes should all use the same cursor for context menu as normal. atm i'm going to mostly leave this bug alone. fwiw the windows mouse control panel cursor tab really doesn't seem very scalable, it basically does: EnumerateValue HKLM\Software\Microsoft\Windows\CurrentVersion\Control Panel\Cursors\Schemes EnumerateKey HKCU\Control Panel EnumerateValue HKCU\Control Panel\Cursors\ it's /possible/ there are other interesting siblings of Cursors\ which the control panel would honor, but i can't think of a useful way to probe it (short of filling the registry with a systematic list of letter strings 1-20 characters long, or relying on a wXP feature to do something similar but avoiding actually putting the keys into the registry).
Assignee: general → win32
Component: GFX → Widget: Win32
(In reply to comment #0) > However, we have nine CSS3 cursors which are not system on Windows. So Mozilla > and/or Firefox cannot get rid of non-system cursors on Windows and be entirely > compatible with CSS3 at the same time. That statement is not true. The CSS3-UI CR says “The UA may treat unsupported values as 'auto'. E.g. on platforms that do not have a concept of a 'context-menu' cursor, the UA may render 'default' or whatever is appropriate.”
Depends on: 309537
Depends on: 309538
My testpage is now at: http://www.gtalbot.org/DHTMLSection/Cursors.html Newly added dependent or somewhat related bugs: bug 309537: When autoscrolling, cursor should indicate current scrolling direction bug 309538: Autoscroll indicator should show possible scrolling directions
Assignee: win32 → nobody
QA Contact: ian → win32
This is also evident in Linux.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.