diff --git a/core/js/js.js b/core/js/js.js
index 4e8d3a01416425e31d566ca2379458fdade2bcf3..ea621123fb01948b2a7c0718b2a9d1e9f0b4f94d 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -1501,17 +1501,21 @@ function initCore() {
 		$navigation.hide();
 
 		// show loading feedback
-		$navigation.delegate('a', 'click', function(event) {
+		$navigation.delegate('a', 'mousedown', function(event) {
 			var $app = $(event.target);
 			if(!$app.is('a')) {
 				$app = $app.closest('a');
 			}
-			if(!event.ctrlKey) {
+			if(event.which === 1 && !event.ctrlKey && !event.metaKey) {
 				$app.addClass('app-loading');
 			} else {
-				// Close navigation when opening app in
-				// a new tab
-				OC.hideMenus();
+				// On middle click or on first button click with ctrl key or meta key hold
+				if(event.which === 2 || (event.which === 1 && (event.ctrlKey || event.metaKey))) {
+					// Close navigation when opening app in
+					// a new tab
+					OC.hideMenus();
+					window.open($app, '_blank');
+				}
 			}
 		});
 	}
@@ -1519,14 +1523,26 @@ function initCore() {
 	function setupUserMenu() {
 		var $menu = $('#header #settings');
 
-		$menu.delegate('a', 'click', function(event) {
+		// show loading feedback
+		$menu.delegate('a', 'mousedown', function(event) {
 			var $page = $(event.target);
 			if (!$page.is('a')) {
 				$page = $page.closest('a');
 			}
-			$page.find('img').remove();
-			$page.find('div').remove(); // prevent odd double-clicks
-			$page.prepend($('<div/>').addClass('icon-loading-small-dark'));
+			if(event.which === 1 && !event.ctrlKey && !event.metaKey) {
+				$page.find('img').remove();
+				$page.find('div').remove(); // prevent odd double-clicks
+				$page.prepend($('<div/>').addClass('icon-loading-small-dark'));
+			} else {
+				// On middle click or on first button click with ctrl key or meta key hold
+				if(event.which === 2 || (event.which === 1 && (event.ctrlKey || event.metaKey))) {
+					// Close navigation when opening menu entry in
+					// a new tab
+					OC.hideMenus();
+					window.open($page, '_blank');
+				}
+			}
+			$($page).click();
 		});
 	}