diff --git a/Plugins/Wox.Plugin.WebSearch/Main.cs b/Plugins/Wox.Plugin.WebSearch/Main.cs index ec4033ac33..095ce20e19 100644 --- a/Plugins/Wox.Plugin.WebSearch/Main.cs +++ b/Plugins/Wox.Plugin.WebSearch/Main.cs @@ -74,7 +74,14 @@ namespace Wox.Plugin.WebSearch IcoPath = searchSource.IconPath, Action = c => { - searchSource.Url.Replace("{q}", Uri.EscapeDataString(keyword)).NewBrowserWindow(""); + if (_settings.OpenInNewBrowser) + { + searchSource.Url.Replace("{q}", Uri.EscapeDataString(keyword)).NewBrowserWindow(""); + } + else + { + searchSource.Url.Replace("{q}", Uri.EscapeDataString(keyword)).NewTabInBrowser(""); + } return true; } @@ -132,7 +139,15 @@ namespace Wox.Plugin.WebSearch IcoPath = searchSource.IconPath, Action = c => { - searchSource.Url.Replace("{q}", Uri.EscapeDataString(o)).NewBrowserWindow(""); + if (_settings.OpenInNewBrowser) + { + searchSource.Url.Replace("{q}", Uri.EscapeDataString(o)).NewBrowserWindow(""); + } + else + { + searchSource.Url.Replace("{q}", Uri.EscapeDataString(o)).NewTabInBrowser(""); + } + return true; } }); diff --git a/Plugins/Wox.Plugin.WebSearch/Settings.cs b/Plugins/Wox.Plugin.WebSearch/Settings.cs index 6277ab7530..5f7a3913e6 100644 --- a/Plugins/Wox.Plugin.WebSearch/Settings.cs +++ b/Plugins/Wox.Plugin.WebSearch/Settings.cs @@ -219,5 +219,7 @@ namespace Wox.Plugin.WebSearch } } } + + public bool OpenInNewBrowser { get; set; } = true; } } \ No newline at end of file diff --git a/Wox.Plugin/SharedCommands/SearchWeb.cs b/Wox.Plugin/SharedCommands/SearchWeb.cs index 853fca43dc..0d94bfd6df 100644 --- a/Wox.Plugin/SharedCommands/SearchWeb.cs +++ b/Wox.Plugin/SharedCommands/SearchWeb.cs @@ -7,7 +7,8 @@ namespace Wox.Plugin.SharedCommands { public static class SearchWeb { - /// Opens search in a new browser. If no browser path is passed in then Chrome is used. + /// + /// Opens search in a new browser. If no browser path is passed in then Chrome is used. /// Leave browser path blank to use Chrome. /// public static void NewBrowserWindow(this string url, string browserPath) @@ -19,11 +20,30 @@ namespace Wox.Plugin.SharedCommands var browser = string.IsNullOrEmpty(browserExecutableName) ? "chrome" : browserPath; // Internet Explorer will open url in new browser window, and does not take the --new-window parameter - var browserArguements = browserExecutableName == "iexplore.exe" ? url : "--new-window " + url; + var browserArguements = browserExecutableName == "iexplore.exe" ? "" : "--new-window "; + OpenWebSearch(browser, browserArguements, url); + } + + /// + /// Opens search as a tab in the default browser chosen in Windows settings. + /// + public static void NewTabInBrowser(this string url, string browserPath) + { + var browserExecutableName = browserPath? + .Split(new[] { Path.DirectorySeparatorChar }, StringSplitOptions.None) + .Last(); + + var browser = string.IsNullOrEmpty(browserExecutableName) ? "" : browserPath; + + OpenWebSearch(browser, "", url); + } + + private static void OpenWebSearch(string chosenBrowser, string browserArguements, string url) + { try { - Process.Start(browser, browserArguements); + Process.Start(chosenBrowser, browserArguements + url); } catch (System.ComponentModel.Win32Exception) {