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