diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/GC.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/GC.java index cd4f197b702..1130ea0518c 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/GC.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/GC.java @@ -5833,15 +5833,12 @@ Point textExtentInPixels(String string, int flags) { return new Point(rect.right, rect.bottom); } -void refreshFor(Drawable drawable, int zoom) { +void refreshFor(Drawable drawable) { if (drawable == null) SWT.error(SWT.ERROR_NULL_ARGUMENT); - if (zoom == getZoom()) { - return; - } destroy(); GCData newData = new GCData(); originalData.copyTo(newData); - createGcHandle(drawable, newData, zoom); + createGcHandle(drawable, newData); } /** @@ -5947,8 +5944,7 @@ private void storeAndApplyOperationForExistingHandle(Operation operation) { operation.apply(); } -private void createGcHandle(Drawable drawable, GCData newData, int nativeZoom) { - newData.nativeZoom = nativeZoom; +private void createGcHandle(Drawable drawable, GCData newData) { long newHandle = drawable.internal_new_GC(newData); if (newHandle == 0) SWT.error(SWT.ERROR_NO_HANDLES); init(drawable, newData, newHandle); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java index 5541adfc313..02003aa231f 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java @@ -2177,10 +2177,12 @@ protected ImageHandle newImageHandle(int zoom) { return createBaseHandle(zoom); } if (memGC != null) { - GC currentGC = memGC; - memGC = null; - createHandle(zoom); - currentGC.refreshFor(new DrawableWrapper(Image.this, zoom), zoom); + if (memGC.getZoom() != zoom) { + GC currentGC = memGC; + memGC = null; + createHandle(zoom); + currentGC.refreshFor(new DrawableWrapper(Image.this, zoom)); + } return zoomLevelToImageHandle.get(zoom); } return super.newImageHandle(zoom);