diff --git a/CHANGELOG b/CHANGELOG index 5ef4fd87..a1ce029b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +Unreleased: +- Cleanup some GUI resource leaks + Changes in 3.7.3: - Local IP address popup will now list IPv6 addresses and support IPv6 netmasks - Support for silent uninstall on Windows #263 diff --git a/src/net/azib/ipscan/gui/InfoDialog.java b/src/net/azib/ipscan/gui/InfoDialog.java index 6d6f7f0c..04f51278 100644 --- a/src/net/azib/ipscan/gui/InfoDialog.java +++ b/src/net/azib/ipscan/gui/InfoDialog.java @@ -41,6 +41,7 @@ public class InfoDialog extends AbstractModalDialog { FontData sysFontData = shell.getFont().getFontData()[0]; titleLabel.setLayoutData(formData(new FormAttachment(iconLabel), null, new FormAttachment(0), null)); titleLabel.setFont(new Font(null, sysFontData.getName(), sysFontData.getHeight() + 3, sysFontData.getStyle() | SWT.BOLD)); + titleLabel.addDisposeListener(e -> titleLabel.getFont().dispose()); titleLabel.setText(title2); Text statsText = new Text(shell, SWT.MULTI | SWT.READ_ONLY); @@ -62,16 +63,10 @@ public class InfoDialog extends AbstractModalDialog { return super.getShellStyle() | SWT.SHEET; } - /** - * @return Returns the message. - */ public String getMessage() { return message; } - /** - * @param message The message to set. - */ public InfoDialog setMessage(String message) { this.message = message; return this; diff --git a/src/net/azib/ipscan/gui/util/LayoutHelper.java b/src/net/azib/ipscan/gui/util/LayoutHelper.java index 70ce5955..012edb9a 100644 --- a/src/net/azib/ipscan/gui/util/LayoutHelper.java +++ b/src/net/azib/ipscan/gui/util/LayoutHelper.java @@ -46,7 +46,9 @@ public class LayoutHelper { public static Font iconFont(Shell shell) { FontData fontData = shell.getFont().getFontData()[0]; fontData.setHeight(fontData.getHeight() * 4/3); - return new Font(shell.getDisplay(), fontData); + Font font = new Font(shell.getDisplay(), fontData); + shell.addDisposeListener(e -> font.dispose()); + return font; } public static Image icon(final String baseName) {