Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Gayed2007-03-15 20:15:30 +0000
committerGrant Gayed2007-03-15 20:15:30 +0000
commitbb27f8549714bae39ec7b58215ba2b7e17bf1edf (patch)
treedab6fdbd91e5c452a6f83ea973e90d176d522430 /bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon
parentc090db7a986349c9c3c8c53ccfaa2946e6c4ba23 (diff)
downloadeclipse.platform.swt-bb27f8549714bae39ec7b58215ba2b7e17bf1edf.tar.gz
eclipse.platform.swt-bb27f8549714bae39ec7b58215ba2b7e17bf1edf.tar.xz
eclipse.platform.swt-bb27f8549714bae39ec7b58215ba2b7e17bf1edf.zip
177616
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java
index bb9494ea69..3304037c5a 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java
@@ -21,6 +21,7 @@ import org.eclipse.swt.widgets.*;
class MozillaDelegate {
Browser browser;
+ Listener listener;
boolean hasFocus;
static Hashtable handles = new Hashtable ();
@@ -133,13 +134,14 @@ void handleFocus () {
hasFocus = true;
((Mozilla)browser.webBrowser).Activate ();
browser.setFocus ();
- 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;
}
};
@@ -149,6 +151,12 @@ void handleFocus () {
void onDispose (int embedHandle) {
handles.remove (new LONG (embedHandle));
+ if (listener != null) {
+ browser.getDisplay ().removeFilter (SWT.FocusIn, listener);
+ browser.getShell ().removeListener (SWT.Deactivate, listener);
+ listener = null;
+ }
+ browser = null;
}
void setSize (int embedHandle, int width, int height) {

Back to the top