Bug 381974 - DBCS4.2: Can not choose Hanzi on Text editor with AIX T/S-Chinese IME
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 ed2c767..d65604c 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
@@ -3032,18 +3032,19 @@
 }
 
 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;