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 84468972a40..50a694f2472 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 @@ -421,7 +421,9 @@ public static Long win32_getHandle (Cursor cursor, int zoom) { } else { ImageData source; if (cursor.imageDataProvider != null) { - source = DPIUtil.validateAndGetImageDataAtZoom(cursor.imageDataProvider, zoom).element(); + Image tempImage = new Image(cursor.getDevice(), cursor.imageDataProvider); + source = tempImage.getImageData(zoom); + tempImage.dispose(); } else { source = DPIUtil.scaleImageData(cursor.device, cursor.source, zoom, DEFAULT_ZOOM);