diff options
author | cbateman | 2007-01-24 08:00:54 +0000 |
---|---|---|
committer | cbateman | 2007-01-24 08:00:54 +0000 |
commit | 63a73a984fad94131278eb65dbfc2aebebcaa1a7 (patch) | |
tree | fbf3904a895655d4a1fbdadd44942ff6bf1182a1 /jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org | |
parent | 608a9ae4c9c4f54df00698dab6533fd408d6c2bd (diff) | |
download | webtools.jsf-63a73a984fad94131278eb65dbfc2aebebcaa1a7.tar.gz webtools.jsf-63a73a984fad94131278eb65dbfc2aebebcaa1a7.tar.xz webtools.jsf-63a73a984fad94131278eb65dbfc2aebebcaa1a7.zip |
Add a dispose listener to dispose the FormColors color registry when the parent composite is disposed. This was causing a possible resource leak.
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java index cad68e05e..a2079e56f 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java +++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java @@ -17,6 +17,8 @@ import java.util.Map.Entry; import org.eclipse.jst.jsf.common.ui.internal.utils.StyleCombo; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.DisposeEvent; +import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.FocusAdapter; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.ModifyEvent; @@ -151,8 +153,8 @@ public class StyleComboDialogField extends DialogFieldBase implements if (toolkit != null) { _comboControl = new StyleCombo(parent, _flags); + final FormColors colors = new FormColors(parent.getDisplay()); parent.addPaintListener(new PaintListener() { - FormColors colors = new FormColors(parent.getDisplay()); public void paintControl(PaintEvent event) { Composite composite = (Composite) event.widget; @@ -170,6 +172,16 @@ public class StyleComboDialogField extends DialogFieldBase implements } } }); + + // when the parent is disposed, the colors should no + // no longer be needed. + parent.addDisposeListener(new DisposeListener() + { + public void widgetDisposed(DisposeEvent e) { + colors.dispose(); + } + } + ); toolkit.adapt(_comboControl); } else { _comboControl = new StyleCombo(parent, _flags | SWT.BORDER); |