135946 - Virtual Tree eats shell activations
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java
index 5762183..4da412f 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java
@@ -445,7 +445,8 @@
 	boolean xFocus = false;
 	if (activeShell != null) {
 		if (OS.GTK_VERSION < OS.VERSION (2, 6, 8)) {
-			xFocus = (activeShell.style & SWT.ON_TOP) != 0;
+			xFocus = (activeShell.style & (SWT.SHELL_TRIM | SWT.BORDER)) == SWT.NONE ||
+				(activeShell.style & (SWT.NO_TRIM | SWT.ON_TOP)) != 0;
 		}
 		display.activeShell = null;
 		display.activePending = true;