diff --git a/Flow.Launcher/MainWindow.xaml b/Flow.Launcher/MainWindow.xaml
index b65fbc7bb..88e95aa69 100644
--- a/Flow.Launcher/MainWindow.xaml
+++ b/Flow.Launcher/MainWindow.xaml
@@ -221,7 +221,6 @@
Visibility="Visible">
-
diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs
index 7d1a68125..e90582b31 100644
--- a/Flow.Launcher/MainWindow.xaml.cs
+++ b/Flow.Launcher/MainWindow.xaml.cs
@@ -25,6 +25,7 @@ using ModernWpf.Controls;
using Key = System.Windows.Input.Key;
using System.Media;
using static Flow.Launcher.ViewModel.SettingWindowViewModel;
+using DataObject = System.Windows.DataObject;
namespace Flow.Launcher
{
@@ -50,7 +51,8 @@ namespace Flow.Launcher
_settings = settings;
InitializeComponent();
- InitializePosition();
+ InitializePosition();
+ DataObject.AddPastingHandler(QueryTextBox, OnPaste);
}
public MainWindow()
@@ -72,12 +74,16 @@ namespace Flow.Launcher
}
}
- private void OnPaste(object sender, ExecutedRoutedEventArgs e)
+ private void OnPaste(object sender, DataObjectPastingEventArgs e)
{
- if (System.Windows.Clipboard.ContainsText())
+ var isText = e.SourceDataObject.GetDataPresent(System.Windows.DataFormats.UnicodeText, true);
+ if (isText)
{
- _viewModel.ChangeQueryText(System.Windows.Clipboard.GetText().Replace("\n", String.Empty).Replace("\r", String.Empty));
- e.Handled = true;
+ var text = e.SourceDataObject.GetData(System.Windows.DataFormats.UnicodeText) as string;
+ text = text.Replace(Environment.NewLine, " ");
+ DataObject data = new DataObject();
+ data.SetData(System.Windows.DataFormats.UnicodeText, text);
+ e.DataObject = data;
}
}
diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs
index c4b13abb0..db481d410 100644
--- a/Flow.Launcher/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher/ViewModel/MainViewModel.cs
@@ -259,6 +259,12 @@ namespace Flow.Launcher.ViewModel
}
else if (!string.IsNullOrEmpty(SelectedResults.SelectedItem?.QuerySuggestionText))
{
+ var defaultSuggestion = SelectedResults.SelectedItem.QuerySuggestionText;
+ // check if result.actionkeywordassigned is empty
+ if (!string.IsNullOrEmpty(result.ActionKeywordAssigned))
+ {
+ autoCompleteText = $"{result.ActionKeywordAssigned} {defaultSuggestion}";
+ }
autoCompleteText = SelectedResults.SelectedItem.QuerySuggestionText;
}
diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/WindowsIndex/WindowsIndex.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/WindowsIndex/WindowsIndex.cs
index de565f9bd..66230937c 100644
--- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/WindowsIndex/WindowsIndex.cs
+++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/WindowsIndex/WindowsIndex.cs
@@ -16,7 +16,7 @@ namespace Flow.Launcher.Plugin.Explorer.Search.WindowsIndex
{
// Reserved keywords in oleDB
- private static Regex _reservedPatternMatcher = new(@"[`\@\@\#\#\*\^,\&\&\/\\\$\%_;\[\]]+", RegexOptions.Compiled);
+ private static Regex _reservedPatternMatcher = new(@"^[`\@\@\#\#\*\^,\&\&\/\\\$\%_;\[\]]+$", RegexOptions.Compiled);
private static async IAsyncEnumerable ExecuteWindowsIndexSearchAsync(string indexQueryString, string connectionString, [EnumeratorCancellation] CancellationToken token)
{
diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json b/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json
index 53d4049e6..fac4621b0 100644
--- a/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json
+++ b/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json
@@ -10,7 +10,7 @@
"Name": "Explorer",
"Description": "Find and manage files and folders via Windows Search or Everything",
"Author": "Jeremy Wu",
- "Version": "3.1.4",
+ "Version": "3.1.5",
"Language": "csharp",
"Website": "https://github.com/Flow-Launcher/Flow.Launcher",
"ExecuteFileName": "Flow.Launcher.Plugin.Explorer.dll",
diff --git a/appveyor.yml b/appveyor.yml
index 195ab1bc1..602efba0e 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,4 +1,4 @@
-version: '1.17.0.{build}'
+version: '1.17.1.{build}'
init:
- ps: |