From e91e4042ba09e16d81d04dd550440d8931c730b8 Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Tue, 19 Aug 2014 15:21:26 +0800 Subject: [PATCH] close #150 Use tab to cycle switch candidates --- Wox/MainWindow.xaml.cs | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/Wox/MainWindow.xaml.cs b/Wox/MainWindow.xaml.cs index 5f7a345672..d0b5ca5318 100644 --- a/Wox/MainWindow.xaml.cs +++ b/Wox/MainWindow.xaml.cs @@ -492,17 +492,25 @@ namespace Wox e.Handled = true; break; + case Key.Tab: + if (globalHotkey.CheckModifiers().ShiftPressed) + { + SelectPrevItem(); + } + else + { + SelectNextItem(); + } + e.Handled = true; + break; + case Key.Down: - resultCtrl.SelectNext(); - if (IsCMDMode) updateCmdMode(); - toolTip.IsOpen = false; + SelectNextItem(); e.Handled = true; break; case Key.Up: - resultCtrl.SelectPrev(); - if (IsCMDMode) updateCmdMode(); - toolTip.IsOpen = false; + SelectPrevItem(); e.Handled = true; break; @@ -536,13 +544,26 @@ namespace Wox break; case Key.Enter: - case Key.Tab: AcceptSelect(resultCtrl.GetActiveResult()); e.Handled = true; break; } } + private void SelectPrevItem() + { + resultCtrl.SelectPrev(); + if (IsCMDMode) updateCmdMode(); + toolTip.IsOpen = false; + } + + private void SelectNextItem() + { + resultCtrl.SelectNext(); + if (IsCMDMode) updateCmdMode(); + toolTip.IsOpen = false; + } + private void AcceptSelect(Result result) { if (!resultCtrl.Dirty && result != null) @@ -551,7 +572,7 @@ namespace Wox { bool hideWindow = result.Action(new ActionContext() { - SpecialKeyState = new GlobalHotkey().CheckModifiers() + SpecialKeyState = globalHotkey.CheckModifiers() }); if (hideWindow) {