summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilenio Quarti <silenio_quarti@ca.ibm.com>2012-08-27 16:14:01 -0400
committerSilenio Quarti <silenio_quarti@ca.ibm.com>2012-08-27 16:14:01 -0400
commit775e69f0ceacc29119a99a55a08648607c8bbff3 (patch)
treefe893b3b5bb29906f4c8a9cb4c73ae1e988a968b
parent9effcc166dfa61e54b0f9bb76b17f1175f53b69b (diff)
downloadeclipse.platform.swt-775e69f0ceacc29119a99a55a08648607c8bbff3.tar.gz
eclipse.platform.swt-775e69f0ceacc29119a99a55a08648607c8bbff3.tar.xz
eclipse.platform.swt-775e69f0ceacc29119a99a55a08648607c8bbff3.zip
Bug 387496 -JVM crashes when running jdtuirefactoring tests on hudson: im-xim.so+0x3b04 (PUT BACK CHANGES IN CONTROL)
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
index c3b5d036a1..10b866506b 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
@@ -3033,18 +3033,19 @@ int /*long*/ gtk_focus_out_event (int /*long*/ widget, int /*long*/ event) {
}
int /*long*/ gtk_key_press_event (int /*long*/ widget, int /*long*/ event) {
- if (!hasFocus ()) return 0;
GdkEventKey gdkEvent = new GdkEventKey ();
OS.memmove (gdkEvent, event, GdkEventKey.sizeof);
+
+ if (filterKey (gdkEvent.keyval, event)) return 1;
+ // widget could be disposed at this point
+ if (isDisposed ()) return 0;
+
+ if (!hasFocus ()) return 0;
if (translateMnemonic (gdkEvent.keyval, gdkEvent)) return 1;
// widget could be disposed at this point
if (isDisposed ()) return 0;
- if (filterKey (gdkEvent.keyval, event)) return 1;
- // widget could be disposed at this point
- if (isDisposed ()) return 0;
-
if (translateTraversal (gdkEvent)) return 1;
// widget could be disposed at this point
if (isDisposed ()) return 0;