summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT OLE Win32
diff options
context:
space:
mode:
authorGrant Gayed <ggayed>2011-01-04 19:42:17 +0000
committerGrant Gayed <ggayed>2011-01-04 19:42:17 +0000
commit4737356cca1a170e2ac9b75af166990431386cdb (patch)
tree80ae855575b0286694a1aba22c4e68abdc0ccb8b /bundles/org.eclipse.swt/Eclipse SWT OLE Win32
parentadc1c99593d3dc7699a7a080880c0339ad9280c5 (diff)
downloadeclipse.platform.swt-4737356cca1a170e2ac9b75af166990431386cdb.tar.gz
eclipse.platform.swt-4737356cca1a170e2ac9b75af166990431386cdb.tar.xz
eclipse.platform.swt-4737356cca1a170e2ac9b75af166990431386cdb.zip
333493 - disposed widget exception when closing editor with Browser with Ctrl+F4
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT OLE Win32')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java
index 0cc4de1ae8..cbc6210488 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java
@@ -220,7 +220,10 @@ static int /*long*/ getMsgProc(int /*long*/ code, int /*long*/ wParam, int /*lon
frame.setData(CONSUME_KEY, null);
display.setData(ACCEL_KEY_HIT, Boolean.TRUE);
consumed = frame.translateOleAccelerator(msg);
+ /* translateOleAccelerator() may send client events, ensure that the frame and display are still valid */
+ if (display.isDisposed()) return 0;
display.setData(ACCEL_KEY_HIT, Boolean.FALSE);
+ if (frame.isDisposed()) return 0;
String value = (String)frame.getData(CONSUME_KEY);
if (value != null) consumed = value.equals("true"); //$NON-NLS-1$
frame.setData(CONSUME_KEY, null);