Description
Description
Cursors are currently not based on an image that can be properly rescaled upon DPI changes, such that the cursor image becomes blurry. This is because cursors are currently instantiated with an instance of ImageData
. Whenever they are resized, that ImageData is scaled.
Cursors can well be experienced with GEF Classic, e.g., after changing zoom from 100% to 175% (the screenshot is a bit more blurry that it should be as it's taken out of a video capture, since in an ordinary screenshot the cursor is missing):
Expected Behavior
Cursors shall sharply adapt to the current zoom, in particular when changing the zoom on Windows with monitor-aware scaling. It should be demonstrated with cursors in GEF.
Additional knowledge
Usually, the consumers of cursors already have a proper image or image descriptor at hand when creating the cursor. That image (descriptor) is usally capable of proper scaling, such as being base on SVGs. So existing the Cursor
classes to accept an Image
for initialization (instead of ImageData
) might be a feasible approach.
To test with GEF, one should check out the GEF Classic repository: https://github.com/eclipse-gef/gef-classic
Then import the org.eclipse.draw2d
, org.eclipse.gef
and the org.eclipse.gef.examples.logic
(the latter for testing) to your Eclipse development workspace and add them to the product you are testing. With the "New" wizard, you can create a logic example to test out the cursors via inserting elements, dragging and dropping etc. (see also this issue for an example):
In GEF, cursors are created here and here. Those places need to be adapted to new, HiDPI-aware API of Cursor for testing the improved cusor scaling.
Sub-issues
Metadata
Metadata
Assignees
Labels
Type
Projects
Status