diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Cursor.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Cursor.java index 9f32841a320..57266fcb3c1 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Cursor.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Cursor.java @@ -628,11 +628,12 @@ public ImageDataProviderCursorHandleProvider(ImageDataProvider provider, int hot @Override public CursorHandle createHandle(Device device, int zoom) { ImageData source; - if (zoom == DEFAULT_ZOOM) { - source = this.provider.getImageData(DEFAULT_ZOOM); + int scaledZoom = (int) (zoom * getPointerSizeScaleFactor()); + if (scaledZoom == DEFAULT_ZOOM) { + source = this.provider.getImageData(scaledZoom); } else { Image tempImage = new Image(device, this.provider); - source = tempImage.getImageData(zoom); + source = tempImage.getImageData(scaledZoom); tempImage.dispose(); } return setupCursorFromImageData(device, source, null, getHotpotXInPixels(zoom), getHotpotYInPixels(zoom));