Bug 48562 - Non-native cursors are imprecise (also, their look could be improved)
Non-native cursors are imprecise (also, their look could be improved)
Status: NEW
Product: Batik - Now in Jira
Classification: Unclassified
Component: Bridge
1.8
PC All
: P2 minor
: ---
Assigned To: Batik Developer's Mailing list
http://www.w3.org/Graphics/SVG/Test/2...
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2010-01-17 15:37 UTC by Helder Magalhães
Modified: 2010-01-17 15:37 UTC (History)
0 users



Attachments
Screenshot of item 3 (Windows) (44.32 KB, image/png)
2010-01-17 15:37 UTC, Helder Magalhães
Details

Note You need to log in before you can comment on or make changes to this bug.
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