Skip to content

Commit d12ad69

Browse files
fedejeanneHeikoKlare
authored andcommitted
Preserve handles of images when changing zooms #2139
Preserve the handles of images created out of existing image handles and also from those which are still needed (according to the method AbstractImageProviderWrapper::getPreservedZoomLevels) Fixes #2139
1 parent 995c9b5 commit d12ad69

File tree

1 file changed

+6
-1
lines changed
  • bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics

1 file changed

+6
-1
lines changed

bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1012,7 +1012,7 @@ private void destroyHandles() {
10121012

10131013
@Override
10141014
void destroyHandlesExcept(Set<Integer> zoomLevels) {
1015-
destroyHandles(zoom -> !zoomLevels.contains(zoom) || !this.imageProvider.getPreservedZoomLevels().contains(zoom));
1015+
destroyHandles(zoom -> !zoomLevels.contains(zoom) && !this.imageProvider.getPreservedZoomLevels().contains(zoom));
10161016
}
10171017

10181018
private void destroyHandles(Predicate<Integer> filter) {
@@ -1930,6 +1930,11 @@ ImageData newImageData(int zoom) {
19301930
AbstractImageProviderWrapper createCopy(Image image) {
19311931
return image.new ExistingImageHandleProviderWrapper(handle, zoomForHandle);
19321932
}
1933+
1934+
@Override
1935+
public Collection<Integer> getPreservedZoomLevels() {
1936+
return Collections.singleton(zoomForHandle);
1937+
}
19331938
}
19341939

19351940
private abstract class ImageFromImageDataProviderWrapper extends AbstractImageProviderWrapper {

0 commit comments

Comments
 (0)