@@ -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+ if ( _mainVM == null || // The results are for preview only in appearance page
215+ _mainVM . ResultsSelected ( this ) ) // The results are selected
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