diff options
author | Silenio Quarti <silenio> | 2008-11-19 17:29:47 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2008-11-19 17:29:47 +0000 |
commit | 282908e38c7906ceb71a643577f38a7ac43c52ef (patch) | |
tree | 9aad184e423139461e4c60cc7c8521f279154589 /bundles | |
parent | 34604d6edeef0973d083eca2ee115d0be6c8440f (diff) | |
download | eclipse.platform.swt-282908e38c7906ceb71a643577f38a7ac43c52ef.tar.gz eclipse.platform.swt-282908e38c7906ceb71a643577f38a7ac43c52ef.tar.xz eclipse.platform.swt-282908e38c7906ceb71a643577f38a7ac43c52ef.zip |
255637 - Missing removeComponentListener in SWT_AWT.new_Shell
Diffstat (limited to 'bundles')
4 files changed, 31 insertions, 4 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT AWT/cocoa/org/eclipse/swt/awt/SWT_AWT.java b/bundles/org.eclipse.swt/Eclipse SWT AWT/cocoa/org/eclipse/swt/awt/SWT_AWT.java index 676b4eda05..80567eac47 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT AWT/cocoa/org/eclipse/swt/awt/SWT_AWT.java +++ b/bundles/org.eclipse.swt/Eclipse SWT AWT/cocoa/org/eclipse/swt/awt/SWT_AWT.java @@ -216,7 +216,7 @@ public class SWT_AWT { // if (handle == 0) SWT.error (SWT.ERROR_INVALID_ARGUMENT, null, " [peer not created]"); // // final Shell shell = Shell.cocoa_new (display, handle); -// parent.addComponentListener(new ComponentAdapter () { +// final ComponentListener listener = new ComponentAdapter () { // public void componentResized (ComponentEvent e) { // display.asyncExec (new Runnable () { // public void run () { @@ -225,6 +225,12 @@ public class SWT_AWT { // } // }); // } +// }; +// parent.addComponentListener(listener); +// shell.addListener(SWT.Dispose, new Listener() { +// public void handleEvent(Event event) { +// parent.removeComponentListener(listener); +// } // }); // shell.setVisible (true); // return shell; diff --git a/bundles/org.eclipse.swt/Eclipse SWT AWT/gtk/org/eclipse/swt/awt/SWT_AWT.java b/bundles/org.eclipse.swt/Eclipse SWT AWT/gtk/org/eclipse/swt/awt/SWT_AWT.java index 24fcdd5496..fafa2e1f62 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT AWT/gtk/org/eclipse/swt/awt/SWT_AWT.java +++ b/bundles/org.eclipse.swt/Eclipse SWT AWT/gtk/org/eclipse/swt/awt/SWT_AWT.java @@ -35,6 +35,7 @@ import java.awt.Window; import java.awt.event.AWTEventListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; import java.awt.event.WindowEvent; @@ -309,7 +310,7 @@ public static Shell new_Shell (final Display display, final Canvas parent) { if (handle == 0) SWT.error (SWT.ERROR_INVALID_ARGUMENT, null, " [peer not created]"); final Shell shell = Shell.gtk_new (display, handle); - parent.addComponentListener(new ComponentAdapter () { + final ComponentListener listener = new ComponentAdapter () { public void componentResized (ComponentEvent e) { display.syncExec (new Runnable () { public void run () { @@ -318,6 +319,12 @@ public static Shell new_Shell (final Display display, final Canvas parent) { } }); } + }; + parent.addComponentListener(listener); + shell.addListener(SWT.Dispose, new Listener() { + public void handleEvent(Event event) { + parent.removeComponentListener(listener); + } }); shell.setVisible (true); return shell; diff --git a/bundles/org.eclipse.swt/Eclipse SWT AWT/motif/org/eclipse/swt/awt/SWT_AWT.java b/bundles/org.eclipse.swt/Eclipse SWT AWT/motif/org/eclipse/swt/awt/SWT_AWT.java index 77421fc209..c42f8f3d88 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT AWT/motif/org/eclipse/swt/awt/SWT_AWT.java +++ b/bundles/org.eclipse.swt/Eclipse SWT AWT/motif/org/eclipse/swt/awt/SWT_AWT.java @@ -35,6 +35,7 @@ import java.awt.Window; import java.awt.event.AWTEventListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; import java.awt.event.WindowEvent; @@ -301,7 +302,7 @@ public static Shell new_Shell (final Display display, final Canvas parent) { if (handle == 0) SWT.error (SWT.ERROR_INVALID_ARGUMENT, null, " [peer not created]"); final Shell shell = Shell.motif_new (display, handle); - parent.addComponentListener(new ComponentAdapter () { + final ComponentListener listener = new ComponentAdapter () { public void componentResized (ComponentEvent e) { display.syncExec (new Runnable () { public void run () { @@ -310,6 +311,12 @@ public static Shell new_Shell (final Display display, final Canvas parent) { } }); } + }; + parent.addComponentListener(listener); + shell.addListener(SWT.Dispose, new Listener() { + public void handleEvent(Event event) { + parent.removeComponentListener(listener); + } }); shell.setVisible (true); return shell; diff --git a/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java b/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java index 1382141a3a..36dc8076e2 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java +++ b/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java @@ -33,6 +33,7 @@ import java.awt.Frame; import java.awt.Toolkit; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; import java.awt.event.WindowEvent; import java.awt.event.FocusEvent; @@ -374,7 +375,7 @@ public static Shell new_Shell (final Display display, final Canvas parent) { if (handle == 0) SWT.error (SWT.ERROR_INVALID_ARGUMENT, null, " [peer not created]"); final Shell shell = Shell.win32_new (display, handle); - parent.addComponentListener(new ComponentAdapter () { + final ComponentListener listener = new ComponentAdapter () { public void componentResized (ComponentEvent e) { display.syncExec (new Runnable () { public void run () { @@ -383,6 +384,12 @@ public static Shell new_Shell (final Display display, final Canvas parent) { } }); } + }; + parent.addComponentListener(listener); + shell.addListener(SWT.Dispose, new Listener() { + public void handleEvent(Event event) { + parent.removeComponentListener(listener); + } }); shell.setVisible (true); return shell; |