From b11ba78073dc074392104a8280c4567cc633a84d Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 3 May 2021 11:57:49 +0200 Subject: [PATCH] Cache image data instead of SWT images, in order to avoid conflicts between multiple apps. --- .../src/org/argeo/cms/ui/util/AbstractCmsTheme.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/org.argeo.cms.ui/src/org/argeo/cms/ui/util/AbstractCmsTheme.java b/org.argeo.cms.ui/src/org/argeo/cms/ui/util/AbstractCmsTheme.java index 5ec931e71..c3fd7960d 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/ui/util/AbstractCmsTheme.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/ui/util/AbstractCmsTheme.java @@ -12,7 +12,7 @@ import org.eclipse.swt.widgets.Display; /** Centralises some generic {@link CmsTheme} patterns. */ public abstract class AbstractCmsTheme implements CmsTheme { - private Map imageCache = new HashMap<>(); + private Map imageCache = new HashMap<>(); private Map> iconPaths = new HashMap<>(); @@ -24,13 +24,14 @@ public abstract class AbstractCmsTheme implements CmsTheme { if (in == null) return null; ImageData imageData = new ImageData(in); - Image image = new Image(Display.getDefault(), imageData); - imageCache.put(path, image); + imageCache.put(path, imageData); } catch (IOException e) { throw new IllegalStateException(e); } } - return imageCache.get(path); + ImageData imageData = imageCache.get(path); + Image image = new Image(Display.getCurrent(), imageData); + return image; } @Override -- 2.30.2