diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Region.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Region.java index 5e6fc072e3b..c0a8634fa22 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Region.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Region.java @@ -646,6 +646,10 @@ private RegionHandle getRegionHandle(int zoom) { Region copy() { Region region = new Region(); + this.zoomToHandle.forEach((zoom, regionHandle) -> { + long handleCopy = win32_getHandle(region, zoom); + OS.CombineRgn(handleCopy, regionHandle.handle, 0, OS.RGN_COPY); + }); region.operations.addAll(operations); return region; }