mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 02:36:19 +02:00
[PTRun]Allow interaction with plugin hints (#30531)
This commit is contained in:
committed by
GitHub
parent
0e01314bbd
commit
e73e73fa6c
@@ -364,6 +364,11 @@ namespace PowerLauncher
|
||||
BringProcessToForeground();
|
||||
|
||||
_viewModel.SetPluginsOverviewVisibility();
|
||||
if (_viewModel.Plugins.Count > 0)
|
||||
{
|
||||
_viewModel.SelectedPlugin = null;
|
||||
pluginsHintsList.ScrollIntoView(pluginsHintsList.Items[0]);
|
||||
}
|
||||
|
||||
// HACK: Setting focus here again fixes some focus issues, like on first run or after showing a message box.
|
||||
SearchBox.QueryTextBox.Focus();
|
||||
@@ -484,66 +489,101 @@ namespace PowerLauncher
|
||||
|
||||
private void Launcher_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Key == Key.Tab && (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)))
|
||||
if (_viewModel.PluginsOverviewVisibility == Visibility.Visible)
|
||||
{
|
||||
_viewModel.SelectPrevTabItemCommand.Execute(null);
|
||||
UpdateTextBoxToSelectedItem();
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Tab)
|
||||
{
|
||||
_viewModel.SelectNextTabItemCommand.Execute(null);
|
||||
UpdateTextBoxToSelectedItem();
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Down)
|
||||
{
|
||||
_viewModel.SelectNextItemCommand.Execute(null);
|
||||
UpdateTextBoxToSelectedItem();
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Up)
|
||||
{
|
||||
_viewModel.SelectPrevItemCommand.Execute(null);
|
||||
UpdateTextBoxToSelectedItem();
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Right)
|
||||
{
|
||||
if (SearchBox.QueryTextBox.CaretIndex == SearchBox.QueryTextBox.Text.Length)
|
||||
if (e.Key == Key.Up)
|
||||
{
|
||||
_viewModel.SelectNextContextMenuItemCommand.Execute(null);
|
||||
_viewModel.SelectPrevOverviewPluginCommand.Execute(null);
|
||||
pluginsHintsList.ScrollIntoView(_viewModel.SelectedPlugin);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Down)
|
||||
{
|
||||
_viewModel.SelectNextOverviewPluginCommand.Execute(null);
|
||||
pluginsHintsList.ScrollIntoView(_viewModel.SelectedPlugin);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Tab && (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)))
|
||||
{
|
||||
_viewModel.SelectPrevOverviewPluginCommand.Execute(null);
|
||||
pluginsHintsList.ScrollIntoView(_viewModel.SelectedPlugin);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Tab)
|
||||
{
|
||||
_viewModel.SelectNextOverviewPluginCommand.Execute(null);
|
||||
pluginsHintsList.ScrollIntoView(_viewModel.SelectedPlugin);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Enter)
|
||||
{
|
||||
QueryForSelectedPlugin();
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
else if (e.Key == Key.Left)
|
||||
else
|
||||
{
|
||||
if (SearchBox.QueryTextBox.CaretIndex == SearchBox.QueryTextBox.Text.Length)
|
||||
if (e.Key == Key.Tab && (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)))
|
||||
{
|
||||
if (_viewModel.Results != null && _viewModel.Results.IsContextMenuItemSelected())
|
||||
_viewModel.SelectPrevTabItemCommand.Execute(null);
|
||||
UpdateTextBoxToSelectedItem();
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Tab)
|
||||
{
|
||||
_viewModel.SelectNextTabItemCommand.Execute(null);
|
||||
UpdateTextBoxToSelectedItem();
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Down)
|
||||
{
|
||||
_viewModel.SelectNextItemCommand.Execute(null);
|
||||
UpdateTextBoxToSelectedItem();
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Up)
|
||||
{
|
||||
_viewModel.SelectPrevItemCommand.Execute(null);
|
||||
UpdateTextBoxToSelectedItem();
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Right)
|
||||
{
|
||||
if (SearchBox.QueryTextBox.CaretIndex == SearchBox.QueryTextBox.Text.Length)
|
||||
{
|
||||
_viewModel.SelectPreviousContextMenuItemCommand.Execute(null);
|
||||
_viewModel.SelectNextContextMenuItemCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (e.Key == Key.PageDown)
|
||||
{
|
||||
_viewModel.SelectNextPageCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.PageUp)
|
||||
{
|
||||
_viewModel.SelectPrevPageCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Back)
|
||||
{
|
||||
_deletePressed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_viewModel.HandleContextMenu(e.Key, Keyboard.Modifiers);
|
||||
else if (e.Key == Key.Left)
|
||||
{
|
||||
if (SearchBox.QueryTextBox.CaretIndex == SearchBox.QueryTextBox.Text.Length)
|
||||
{
|
||||
if (_viewModel.Results != null && _viewModel.Results.IsContextMenuItemSelected())
|
||||
{
|
||||
_viewModel.SelectPreviousContextMenuItemCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (e.Key == Key.PageDown)
|
||||
{
|
||||
_viewModel.SelectNextPageCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.PageUp)
|
||||
{
|
||||
_viewModel.SelectPrevPageCommand.Execute(null);
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.Key == Key.Back)
|
||||
{
|
||||
_deletePressed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_viewModel.HandleContextMenu(e.Key, Keyboard.Modifiers);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -796,5 +836,25 @@ namespace PowerLauncher
|
||||
|
||||
_hwndSource = null;
|
||||
}
|
||||
|
||||
private void PluginsHintsList_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
QueryForSelectedPlugin();
|
||||
}
|
||||
|
||||
private void QueryForSelectedPlugin()
|
||||
{
|
||||
if (_viewModel.Plugins.Count > 0 && _viewModel.SelectedPlugin != null)
|
||||
{
|
||||
// Needed to update UI in case the user choose the same plugin multiple times
|
||||
_viewModel.ChangeQueryText(string.Empty);
|
||||
|
||||
_viewModel.ChangeQueryText(_viewModel.SelectedPlugin.Metadata.ActionKeyword, true);
|
||||
SearchBox.QueryTextBox.Focus();
|
||||
|
||||
_viewModel.SelectedPlugin = null;
|
||||
pluginsHintsList.ScrollIntoView(pluginsHintsList.Items[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user