summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Gayed <ggayed>2007-03-15 21:17:45 +0000
committerGrant Gayed <ggayed>2007-03-15 21:17:45 +0000
commitbd64112265c2a125577ef5db8ecfbdb762c0aeab (patch)
tree2ed8c125ee978a2171c776ce67a2b03effdd90ce
parent49c0b804a79ac30f301e8fb0f31e7a8dd1b6578e (diff)
downloadeclipse.platform.swt-bd64112265c2a125577ef5db8ecfbdb762c0aeab.tar.gz
eclipse.platform.swt-bd64112265c2a125577ef5db8ecfbdb762c0aeab.tar.xz
eclipse.platform.swt-bd64112265c2a125577ef5db8ecfbdb762c0aeab.zip
177616
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java
index 8ed57a7408..ee384f56b8 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java
@@ -17,6 +17,7 @@ import org.eclipse.swt.widgets.*;
class MozillaDelegate {
Browser browser;
+ Listener listener;
boolean hasFocus;
static boolean GtkLoaded, IsLinux;
@@ -110,13 +111,14 @@ String getLibraryName () {
void handleFocus () {
if (hasFocus) return;
hasFocus = true;
- Listener listener = new Listener () {
+ listener = new Listener () {
public void handleEvent (Event event) {
if (event.widget == browser) return;
((Mozilla)browser.webBrowser).Deactivate ();
hasFocus = false;
browser.getDisplay ().removeFilter (SWT.FocusIn, this);
browser.getShell ().removeListener (SWT.Deactivate, this);
+ listener = null;
}
};
@@ -125,10 +127,18 @@ void handleFocus () {
}
void onDispose (int embedHandle) {
+ if (listener != null) {
+ browser.getDisplay ().removeFilter (SWT.FocusIn, listener);
+ browser.getShell ().removeListener (SWT.Deactivate, listener);
+ listener = null;
+ }
+
GTK.gtk_widget_destroy (embedHandle);
while (GTK.gtk_events_pending () != 0) {
GTK.gtk_main_iteration ();
}
+
+ browser = null;
}
void setSize(int embedHandle, int width, int height) {