Bug 465868 - A UI freeze in context assist is not caught by UI
Responsiveness Monitoring

Change-Id: If4cc13aabc8733c1c0ae6177cd2e82bbcb1a513c
Signed-off-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Display.java
index 44a8177..ed7aefc 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Display.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Display.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2015 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1098,7 +1098,15 @@
 }
 
 boolean filterEvent (Event event) {
-	if (filterTable != null) filterTable.sendEvent (event);
+	if (filterTable != null) {
+		int type = event.type;
+		sendPreEvent (type);
+		try {
+			filterTable.sendEvent (event);
+		} finally {
+			sendPostEvent (type);
+		}
+	}
 	return false;
 }
 
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
index d9a69c0..6afbc71 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2015 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1543,7 +1543,15 @@
 }
 
 boolean filterEvent (Event event) {
-	if (filterTable != null) filterTable.sendEvent (event);
+	if (filterTable != null) {
+		int type = event.type;
+		sendPreEvent (type);
+		try {
+			filterTable.sendEvent (event);
+		} finally {
+			sendPostEvent (type);
+		}
+	}
 	return false;
 }
 
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java
index d02ea09..12f8265 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2015 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1259,7 +1259,15 @@
 }
 
 boolean filterEvent (Event event) {
-	if (filterTable != null) filterTable.sendEvent (event);
+	if (filterTable != null) {
+		int type = event.type;
+		sendPreEvent (type);
+		try {
+			filterTable.sendEvent (event);
+		} finally {
+			sendPostEvent (type);
+		}
+	}
 	return false;
 }