Bug 48562

Summary: Non-native cursors are imprecise (also, their look could be improved)
Product: Batik - Now in Jira Reporter: Helder Magalhães <helder.magalhaes>
Component: BridgeAssignee: Batik Developer's Mailing list <batik-dev>
Status: NEW ---    
Severity: minor    
Priority: P2    
Version: 1.8   
Target Milestone: ---   
Hardware: PC   
OS: All   
URL: http://www.w3.org/Graphics/SVG/Test/20061213/svggen/interact-cursor-01-f.svg
Attachments: Screenshot of item 3 (Windows)

Description Helder Magalhães 2010-01-17 15:37:48 UTC
Created attachment 24851 [details]
Screenshot of item 3 (Windows)

While testing Batik I noticed a few glitches with cursors.


Steps to reproduce:
1. Open Batik Squiggle;
2. Load the SVG 1.1 test suite regarding cursors [2] (bug's URL);
3. Slowly move the mouse into the "help" and "move" areas.


Expected result:
Cursor behavior would behave the same as a native implementation.


Actual result:
I've noticed a few minor issues, namely:

1. Imprecision. When the mouse enters the (already stated) areas where custom cursors are used (see org.apache.batik.bridge.CursorManager), there's a small, about 1 pixel jump. This seems to be caused by the fact that cursor hot spots seem to be zero-based, while the code assumes 1-based.

2. The "move" cursor (according to the code, MacOS only) is even size and, therefore, not very precise. An odd-sized cursor is suggested.

3. The custom help cursor looks bad in Windows. What seems to be happening is that the cursor is scaled according to the hint from "Toolkit.getDefaultToolkit().getBestCursorSize", while the native cursors seem to be smaller than that. I'm not sure if a fix should be attempted.

4. The "pointer" cursor doesn't use the native cursor: a generic hand-looking cursor is displayed (at least in Windows [2] and Linux [3]). Apparently it is due to a Java limitation, which doesn't contain a native cursor binding to this cursor -- I recall from the docs that it's not consistent across platforms, but I haven't got a pointer handy and we can't fix this one, so it doesn't matter much...


Additional details:
I had this problem almost fixed in my previous laptop but, unfortunately, something got lost during migration to my current one. The fixes are rather simple and this should be easy to address soon.


[1] http://www.w3.org/Graphics/SVG/Test/20061213/svggen/interact-cursor-01-f.svg
[2] Windows XP SP3 + JRE 1.6.0_05 + Batik 1.7 & 1.8pre
[3] Ubuntu 7.10 + JRE 1.6.0_03 + Batik 1.7