diff options
author | Grant Gayed | 2007-03-15 20:15:30 +0000 |
---|---|---|
committer | Grant Gayed | 2007-03-15 20:15:30 +0000 |
commit | bb27f8549714bae39ec7b58215ba2b7e17bf1edf (patch) | |
tree | dab6fdbd91e5c452a6f83ea973e90d176d522430 /bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon | |
parent | c090db7a986349c9c3c8c53ccfaa2946e6c4ba23 (diff) | |
download | eclipse.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.java | 10 |
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) { |