Skip to content

Commit cc8b9e6

Browse files
committed
Reset selected item and index to prevent stale selections
1 parent 675581f commit cc8b9e6

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

Flow.Launcher/ViewModel/ResultsViewModel.cs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,14 @@ public void KeepResultsExcept(PluginMetadata metadata)
176176
public void ResetSelectedIndex()
177177
{
178178
_lastSelectedIndex = 0;
179+
_lastSelectedItem = null; // prevent accidental reselection of stale item
179180
if (Results.Any())
180181
{
181182
SelectedIndex = 0;
182-
SelectedItem = Results[0];
183+
SelectedItem = Results[0];
183184
}
185+
OnPropertyChanged(nameof(SelectedIndex));
186+
OnPropertyChanged(nameof(SelectedItem));
184187
}
185188

186189
/// <summary>
@@ -201,11 +204,21 @@ public void AddResults(ICollection<ResultsForUpdate> resultsForUpdates, Cancella
201204
return;
202205

203206
// Save the currently selected item
204-
if (SelectedItem != null)
207+
ResultViewModel lastSelectedItem = null;
208+
int lastSelectedIndex = -1;
209+
210+
Application.Current.Dispatcher.Invoke(() =>
205211
{
206-
_lastSelectedItem = SelectedItem;
207-
_lastSelectedIndex = SelectedIndex;
208-
}
212+
if (SelectedItem != null)
213+
{
214+
lastSelectedItem = SelectedItem;
215+
lastSelectedIndex = SelectedIndex;
216+
}
217+
});
218+
219+
// 캡처한 값 저장
220+
_lastSelectedItem = lastSelectedItem;
221+
_lastSelectedIndex = lastSelectedIndex;
209222

210223
// Generate new results
211224
var newResults = NewResults(resultsForUpdates);

0 commit comments

Comments
 (0)