From 22e7c54f832345cd173750854f269e2dc0bad3a9 Mon Sep 17 00:00:00 2001 From: Betsegaw Tadele Date: Sun, 7 Sep 2014 00:33:47 -0700 Subject: [PATCH] Fixed: Double results no longer returned When searching for text associated with a shortcut, a window is no longer returned twice for matching with both the shortcut text and the actual search text --- Window Walker/Window Walker/MainWindow.xaml.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Window Walker/Window Walker/MainWindow.xaml.cs b/Window Walker/Window Walker/MainWindow.xaml.cs index 735ff9d..0e91714 100644 --- a/Window Walker/Window Walker/MainWindow.xaml.cs +++ b/Window Walker/Window Walker/MainWindow.xaml.cs @@ -76,8 +76,7 @@ private void TextChangedEvent(object sender, TextChangedEventArgs e) public void SearchResultUpdateHandler(object sender, WindowWalker.Components.Window.WindowListUpdateEventArgs e) { this.Dispatcher.Invoke(() => - { - + { resultsListBox.Items.Clear(); var windowsResult = WindowSearchController.Instance.SearchMatches.Where(x => x.ResultWindow.Hwnd != this.handleToMainWindow); @@ -93,10 +92,21 @@ public void SearchResultUpdateHandler(object sender, WindowWalker.Components.Win windowResultsByType.Add(windowsShortcutResults.ToList()); windowResultsByType.Add(windowsFuzzyResults.ToList()); + Dictionary windowsAlreadyDisplayed = new Dictionary(); + foreach (var windowsResultForType in windowResultsByType) { foreach (WindowSearchResult windowResult in windowsResultForType) { + if (windowsAlreadyDisplayed.ContainsKey(windowResult.ResultWindow.Hwnd)) + { + continue; + } + else + { + windowsAlreadyDisplayed[windowResult.ResultWindow.Hwnd] = true; + } + /// Each window is shown in a horizontal stack panel /// that contains an image object on the left and /// a textblock with the window title on the right