Bug 426062 - RCP application menu not shown when launched from Eclipse
on OS X 10.9 
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras
index 1c57101..46b121e 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/AppKitFull.bridgesupport.extras
@@ -150,6 +150,10 @@
 			<arg swt_gen="true"></arg>
 			<retval swt_gen="true"></retval>
 		</method>
+		<method selector="setActivationPolicy:" swt_gen="true">
+			<arg swt_gen="true"></arg>
+			<retval swt_gen="true"></retval>
+		</method>
 		<method selector="setApplicationIconImage:" swt_gen="true">
 			<arg swt_gen="true"></arg>
 			<retval swt_gen="true"></retval>
@@ -2704,6 +2708,15 @@
 	</class>
 	<class name="NSRulerView" swt_superclass="NSView">
 	</class>
+	<class name="NSRunningApplication" swt_gen="mixed">
+		<method selector="activateWithOptions:" swt_gen="true">
+			<arg swt_gen="true"></arg>
+			<retval swt_gen="true"></retval>
+		</method>
+		<method class_method="true" selector="currentApplication" swt_gen="true">
+			<retval swt_gen="true"></retval>
+		</method>
+	</class>
 	<class name="NSSavePanel" swt_gen="mixed" swt_superclass="NSPanel">
 		<method selector="filename" swt_gen="true">
 			<retval swt_gen="true"></retval>
@@ -4690,6 +4703,8 @@
 	<enum name="NSAlphaFirstBitmapFormat" swt_gen="true"></enum>
 	<enum name="NSAlphaNonpremultipliedBitmapFormat" swt_gen="true"></enum>
 	<enum name="NSAlternateKeyMask" swt_gen="true"></enum>
+	<enum name="NSApplicationActivateIgnoringOtherApps" swt_gen="true"></enum>
+	<enum name="NSApplicationActivationPolicyRegular" swt_gen="true"></enum>
 	<enum name="NSApplicationDefined" swt_gen="true"></enum>
 	<enum name="NSApplicationDelegateReplySuccess" swt_gen="true"></enum>
 	<enum name="NSAtTop" swt_gen="true"></enum>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/NSApplication.java b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/NSApplication.java
index a3ff53d..aa8dcdb 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/NSApplication.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/NSApplication.java
@@ -128,6 +128,10 @@
 	OS.objc_msgSend(this.id, OS.sel_sendEvent_, theEvent != null ? theEvent.id : 0);
 }
 
+public boolean setActivationPolicy(int /*long*/ activationPolicy) {
+	return OS.objc_msgSend_bool(this.id, OS.sel_setActivationPolicy_, activationPolicy);
+}
+
 public void setApplicationIconImage(NSImage image) {
 	OS.objc_msgSend(this.id, OS.sel_setApplicationIconImage_, image != null ? image.id : 0);
 }
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/NSRunningApplication.java b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/NSRunningApplication.java
new file mode 100644
index 0000000..52bcd0f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/NSRunningApplication.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.internal.cocoa;
+
+public class NSRunningApplication extends NSObject {
+
+public NSRunningApplication() {
+	super();
+}
+
+public NSRunningApplication(int /*long*/ id) {
+	super(id);
+}
+
+public NSRunningApplication(id id) {
+	super(id);
+}
+
+public boolean activateWithOptions(int /*long*/ options) {
+	return OS.objc_msgSend_bool(this.id, OS.sel_activateWithOptions_, options);
+}
+
+public static NSRunningApplication currentApplication() {
+	int /*long*/ result = OS.objc_msgSend(OS.class_NSRunningApplication, OS.sel_currentApplication);
+	return result != 0 ? new NSRunningApplication(result) : null;
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java
index 01c5278..dd9005d 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cocoa/org/eclipse/swt/internal/cocoa/OS.java
@@ -827,6 +827,7 @@
 public static final int /*long*/ class_NSProgressIndicator = objc_getClass("NSProgressIndicator");
 public static final int /*long*/ class_NSResponder = objc_getClass("NSResponder");
 public static final int /*long*/ class_NSRunLoop = objc_getClass("NSRunLoop");
+public static final int /*long*/ class_NSRunningApplication = objc_getClass("NSRunningApplication");
 public static final int /*long*/ class_NSSavePanel = objc_getClass("NSSavePanel");
 public static final int /*long*/ class_NSScreen = objc_getClass("NSScreen");
 public static final int /*long*/ class_NSScrollView = objc_getClass("NSScrollView");
@@ -954,6 +955,7 @@
 public static final int /*long*/ sel_accessibilitySetValue_forAttribute_ = sel_registerName("accessibilitySetValue:forAttribute:");
 public static final int /*long*/ sel_action = sel_registerName("action");
 public static final int /*long*/ sel_activateIgnoringOtherApps_ = sel_registerName("activateIgnoringOtherApps:");
+public static final int /*long*/ sel_activateWithOptions_ = sel_registerName("activateWithOptions:");
 public static final int /*long*/ sel_addAttribute_value_range_ = sel_registerName("addAttribute:value:range:");
 public static final int /*long*/ sel_addButtonWithTitle_ = sel_registerName("addButtonWithTitle:");
 public static final int /*long*/ sel_addChildWindow_ordered_ = sel_registerName("addChildWindow:ordered:");
@@ -1178,6 +1180,7 @@
 public static final int /*long*/ sel_credentialWithUser_password_persistence_ = sel_registerName("credentialWithUser:password:persistence:");
 public static final int /*long*/ sel_crosshairCursor = sel_registerName("crosshairCursor");
 public static final int /*long*/ sel_ctrlKey = sel_registerName("ctrlKey");
+public static final int /*long*/ sel_currentApplication = sel_registerName("currentApplication");
 public static final int /*long*/ sel_currentContext = sel_registerName("currentContext");
 public static final int /*long*/ sel_currentCursor = sel_registerName("currentCursor");
 public static final int /*long*/ sel_currentEditor = sel_registerName("currentEditor");
@@ -1809,6 +1812,7 @@
 public static final int /*long*/ sel_setAcceptsTouchEvents_ = sel_registerName("setAcceptsTouchEvents:");
 public static final int /*long*/ sel_setAccessoryView_ = sel_registerName("setAccessoryView:");
 public static final int /*long*/ sel_setAction_ = sel_registerName("setAction:");
+public static final int /*long*/ sel_setActivationPolicy_ = sel_registerName("setActivationPolicy:");
 public static final int /*long*/ sel_setAlertStyle_ = sel_registerName("setAlertStyle:");
 public static final int /*long*/ sel_setAlignment_ = sel_registerName("setAlignment:");
 public static final int /*long*/ sel_setAllowsColumnReordering_ = sel_registerName("setAllowsColumnReordering:");
@@ -2305,6 +2309,8 @@
 public static final int NSAlphaFirstBitmapFormat = 1;
 public static final int NSAlphaNonpremultipliedBitmapFormat = 2;
 public static final int NSAlternateKeyMask = 524288;
+public static final int NSApplicationActivateIgnoringOtherApps = 2;
+public static final int NSApplicationActivationPolicyRegular = 0;
 public static final int NSApplicationDefined = 15;
 public static final int NSApplicationDelegateReplySuccess = 0;
 public static final int NSAtTop = 2;
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 466dd33..c7f5cc2 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
@@ -854,8 +854,13 @@
 		int /*long*/ ptr = getApplicationName().UTF8String();
 		if (ptr != 0) OS.CPSSetProcessName (psn, ptr);
 		if (!isBundled ()) {
-			OS.TransformProcessType (psn, OS.kProcessTransformToForegroundApplication);
-			OS.SetFrontProcess (psn);
+			if (OS.VERSION_MMB >= OS.VERSION_MMB (10, 9, 0)) {
+				application.setActivationPolicy (OS.NSApplicationActivationPolicyRegular);
+				NSRunningApplication.currentApplication().activateWithOptions (OS.NSApplicationActivateIgnoringOtherApps);
+			} else {
+				OS.TransformProcessType (psn, OS.kProcessTransformToForegroundApplication);
+				OS.SetFrontProcess (psn);
+			}
 		}
 		ptr = OS.getenv (ascii ("APP_ICON_" + pid));
 		if (ptr != 0) {