-
Notifications
You must be signed in to change notification settings - Fork 187
Description
Describe the bug
When changing the cursor size in the Windows accessibility settings, the sizes of already created cursors (i.e., those that have already been instantiated for a specific monitor zoom) will not be updated for that zoom anymore and stick to the existing accessibility setting instead. This is caused by the cursor handle cache only taking the monitor zoom but not the accessibility zoom into account. See #2811 (review) from @ptziegler.
To Reproduce
- Open Snippet386 and choose one of the constructors using
ImageData(or with [Win32] Apply accessibility setting to ImageDataProvider-based cursor #2811 you can also use the one usingImageDataProvider) - Hover over the "Scale" area once such that the cursor appears
- Change the accessibility settings of your system to use a different cursor size
- Hover over the "Scale" area again
You will see that the cursor still has the "old" size (i.e., without the accessibility setting change) when hovering over that area.
Expected behavior
Cursor sizes should dynamically adapt to changed accessibility settings.
Environment:
- Select the platform(s) on which the behavior is seen:
-
- All OS
-
- Windows
-
- Linux
-
- macOS
Workaround (or) Additional context
Restarting the application or resetting the context in which the cursor was created helps. But since, e.g., in GEF Classic such cusors are static/shared, you have to restart the application.
What would probably solve the issue is to simply use monitorZoom * accessibilityZoom as key for the Cursor handle cache.