From 4f4a65eba82f1c7e13438bbf0e74ced8713ea360 Mon Sep 17 00:00:00 2001 From: nightwing Date: Wed, 15 Mar 2017 19:55:08 +0000 Subject: [PATCH] middle click to open preview in new tab --- plugins/c9.ide.preview/preview.js | 24 ++++++++++++++---------- plugins/c9.ide.ui/lib/menu/menu.js | 5 +++-- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/plugins/c9.ide.preview/preview.js b/plugins/c9.ide.preview/preview.js index 702d2ce9..0f8ed1f1 100644 --- a/plugins/c9.ide.preview/preview.js +++ b/plugins/c9.ide.preview/preview.js @@ -99,16 +99,18 @@ define(function(require, exports, module) { menus.addItemByPath("Tools/Preview/", submenu, 1000, handle); liveMenuItem = new ui.item({ - onclick: function() { commands.exec("preview"); } + onclick: function(e) { commands.exec("preview", { newTab: e && e.button == 1 }); } }); menus.addItemByPath("Tools/Preview/Live Preview Files", liveMenuItem, 100, handle); - menus.addItemByPath("Tools/Preview/Preview Running Application", - new ui.item({ - onclick: function() { - commands.exec("preview", null, { server: true }); - } - }), 200, handle); + menus.addItemByPath("Tools/Preview/Preview Running Application", new ui.item({ + onclick: function(e) { + commands.exec("preview", null, { + server: true, + newTab: e && e.button == 1 + }); + } + }), 200, handle); } settings.on("read", function(e) { @@ -199,13 +201,15 @@ define(function(require, exports, module) { }; function done() { + var path = (options.local ? "http" : "https") + + "://" + hostname; + if (args.newTab) + return util.openNewWindow(path); + // Open Pane pane = findPane(); // Open Preview - var path = (options.local ? "http" : "https") - + "://" + hostname; - openPreview(path, pane, args && args.active); } diff --git a/plugins/c9.ide.ui/lib/menu/menu.js b/plugins/c9.ide.ui/lib/menu/menu.js index 71161ea2..9d1fcf46 100644 --- a/plugins/c9.ide.ui/lib/menu/menu.js +++ b/plugins/c9.ide.ui/lib/menu/menu.js @@ -1500,7 +1500,7 @@ apf.item = function(struct, tagName) { }; - this.$up = function() { + this.$up = function(e) { if (this.type == "radio") @@ -1533,7 +1533,8 @@ apf.item = function(struct, tagName) { this.dispatchEvent("click", { xmlContext: (this.parentNode || 0).xmlReference, - opener: (this.parentNode || 0).opener + opener: (this.parentNode || 0).opener, + button: e && e.button });