Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Goldthorpe2010-04-14 17:40:10 +0000
committerChris Goldthorpe2010-04-14 17:40:10 +0000
commit0c93f317ac92cd9e0708fb7556a0334dcdbd7ef7 (patch)
tree21e65bba75294998d0121431fcd482d150e6d68e
parent2ec6b7b5238741bbff730d4e52f2e52384b35df0 (diff)
downloadeclipse.platform.ua-0c93f317ac92cd9e0708fb7556a0334dcdbd7ef7.tar.gz
eclipse.platform.ua-0c93f317ac92cd9e0708fb7556a0334dcdbd7ef7.tar.xz
eclipse.platform.ua-0c93f317ac92cd9e0708fb7556a0334dcdbd7ef7.zip
Bug 308765 - EmbeddedBrowser leaks shell images
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java
index 851a395f5..167c45118 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -221,7 +221,7 @@ public class EmbeddedBrowser {
}
private static void initializeShell(Shell s) {
s.setText(initialTitle);
- Image[] shellImages = createImages();
+ final Image[] shellImages = createImages();
if (shellImages != null)
s.setImages(shellImages);
GridLayout layout = new GridLayout();
@@ -230,6 +230,18 @@ public class EmbeddedBrowser {
layout.verticalSpacing = 0;
layout.horizontalSpacing = 0;
s.setLayout(layout);
+ s.addDisposeListener(new DisposeListener() {
+
+ public void widgetDisposed(DisposeEvent e) {
+ if (shellImages != null) {
+ for (int i = 0; i < shellImages.length; i++) {
+ shellImages[i].dispose();
+ }
+ }
+
+ }
+ });
+
}
private void initialize(Browser browser) {
browser.addOpenWindowListener(new OpenWindowListener() {

Back to the top