Skip to content

Commit 58f8099

Browse files
committed
Fix results context menu display issue
1 parent d2e63ab commit 58f8099

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

Flow.Launcher/SettingPages/ViewModels/SettingsPaneThemeViewModel.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ public SettingsPaneThemeViewModel(Settings settings, Theme theme)
479479
)
480480
}
481481
};
482-
var vm = new ResultsViewModel(Settings);
482+
var vm = new ResultsViewModel(Settings, null);
483483
vm.AddResults(results, "PREVIEW");
484484
PreviewResults = vm;
485485
}

Flow.Launcher/ViewModel/MainViewModel.cs

+9-3
Original file line numberDiff line numberDiff line change
@@ -148,19 +148,19 @@ public MainViewModel()
148148
_userSelectedRecord = _userSelectedRecordStorage.Load();
149149
_topMostRecord = _topMostRecordStorage.Load();
150150

151-
ContextMenu = new ResultsViewModel(Settings)
151+
ContextMenu = new ResultsViewModel(Settings, this)
152152
{
153153
LeftClickResultCommand = OpenResultCommand,
154154
RightClickResultCommand = LoadContextMenuCommand,
155155
IsPreviewOn = Settings.AlwaysPreview
156156
};
157-
Results = new ResultsViewModel(Settings)
157+
Results = new ResultsViewModel(Settings, this)
158158
{
159159
LeftClickResultCommand = OpenResultCommand,
160160
RightClickResultCommand = LoadContextMenuCommand,
161161
IsPreviewOn = Settings.AlwaysPreview
162162
};
163-
History = new ResultsViewModel(Settings)
163+
History = new ResultsViewModel(Settings, this)
164164
{
165165
LeftClickResultCommand = OpenResultCommand,
166166
RightClickResultCommand = LoadContextMenuCommand,
@@ -1662,6 +1662,12 @@ private bool HistorySelected()
16621662
return selected;
16631663
}
16641664

1665+
internal bool ResultsSelected(ResultsViewModel results)
1666+
{
1667+
var selected = SelectedResults == results;
1668+
return selected;
1669+
}
1670+
16651671
#endregion
16661672

16671673
#region Hotkey

Flow.Launcher/ViewModel/ResultsViewModel.cs

+13-3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class ResultsViewModel : BaseModel
2121

2222
private readonly object _collectionLock = new();
2323
private readonly Settings _settings;
24+
private readonly MainViewModel _mainVM;
2425
private int MaxResults => _settings?.MaxResultsToShow ?? 6;
2526

2627
public ResultsViewModel()
@@ -29,9 +30,10 @@ public ResultsViewModel()
2930
BindingOperations.EnableCollectionSynchronization(Results, _collectionLock);
3031
}
3132

32-
public ResultsViewModel(Settings settings) : this()
33+
public ResultsViewModel(Settings settings, MainViewModel mainVM) : this()
3334
{
3435
_settings = settings;
36+
_mainVM = mainVM;
3537
_settings.PropertyChanged += (s, e) =>
3638
{
3739
switch (e.PropertyName)
@@ -179,6 +181,7 @@ public void AddResults(List<Result> newRawResults, string resultId)
179181

180182
UpdateResults(newResults);
181183
}
184+
182185
/// <summary>
183186
/// To avoid deadlock, this method should not called from main thread
184187
/// </summary>
@@ -202,11 +205,18 @@ private void UpdateResults(List<ResultViewModel> newResults, bool reselect = tru
202205
SelectedItem = Results[0];
203206
}
204207

208+
if (token.IsCancellationRequested)
209+
return;
210+
205211
switch (Visibility)
206212
{
207213
case Visibility.Collapsed when Results.Count > 0:
208-
SelectedIndex = 0;
209-
Visibility = Visibility.Visible;
214+
// Show it only if the results are selected
215+
if (_mainVM == null || _mainVM.ResultsSelected(this))
216+
{
217+
SelectedIndex = 0;
218+
Visibility = Visibility.Visible;
219+
}
210220
break;
211221
case Visibility.Visible when Results.Count == 0:
212222
Visibility = Visibility.Collapsed;

0 commit comments

Comments
 (0)