summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java
diff options
context:
space:
mode:
authorDuong Nguyen <dnguyen>2008-09-23 18:17:16 +0000
committerDuong Nguyen <dnguyen>2008-09-23 18:17:16 +0000
commit6a0a69c63b6224139c4c8e71f43c9b0a1ef93b93 (patch)
treec7cd1f8386a97da92758b920a66a17d35e225094 /bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java
parent4a3ea50742b341f871e030fc351a2ff86db6dd07 (diff)
downloadeclipse.platform.swt-6a0a69c63b6224139c4c8e71f43c9b0a1ef93b93.tar.gz
eclipse.platform.swt-6a0a69c63b6224139c4c8e71f43c9b0a1ef93b93.tar.xz
eclipse.platform.swt-6a0a69c63b6224139c4c8e71f43c9b0a1ef93b93.zip
Bug 248187 - Adobe Reader 9.0 browser crash NPE
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java
index f8648ec5be..b89458d525 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java
@@ -846,18 +846,21 @@ private int OnDataChange(int /*long*/ pFormatetc, int /*long*/ pStgmed) {
}
private void onDispose(Event e) {
inDispose = true;
- if (state != STATE_NONE)
- doVerb(OLE.OLEIVERB_DISCARDUNDOSTATE);
- deactivateInPlaceClient();
- releaseObjectInterfaces(); // Note, must release object interfaces before releasing frame
- deleteTempStorage();
-
+
// remove listeners
removeListener(SWT.Dispose, listener);
removeListener(SWT.FocusIn, listener);
+ removeListener(SWT.FocusOut, listener);
removeListener(SWT.Paint, listener);
removeListener(SWT.Traverse, listener);
removeListener(SWT.KeyDown, listener);
+
+ if (state != STATE_NONE)
+ doVerb(OLE.OLEIVERB_DISCARDUNDOSTATE);
+ deactivateInPlaceClient();
+ releaseObjectInterfaces(); // Note, must release object interfaces before releasing frame
+ deleteTempStorage();
+
frame.removeListener(SWT.Resize, listener);
frame.removeListener(SWT.Move, listener);