@@ -42,8 +42,8 @@ public int ActiveTabIndex
4242 _sharedData . ActiveTabIndex = value ;
4343 OnPropertyChanged ( nameof ( ActiveTabIndex ) ) ;
4444
45- if ( value == 1 && DiffContext == null && _selectedChanges is { Count : 1 } )
46- DiffContext = new DiffContext ( _repo . FullPath , new Models . DiffOption ( _commit , _selectedChanges [ 0 ] ) ) ;
45+ if ( DiffContext == null )
46+ UpdateDetails ( ) ;
4747 }
4848 }
4949 }
@@ -91,18 +91,13 @@ public List<Models.Change> VisibleChanges
9191 set => SetProperty ( ref _visibleChanges , value ) ;
9292 }
9393
94- public List < Models . Change > SelectedChanges
94+ public ChangeSelection ChangeSelection
9595 {
96- get => _selectedChanges ;
96+ get => _changeSelection ;
9797 set
9898 {
99- if ( SetProperty ( ref _selectedChanges , value ) )
100- {
101- if ( ActiveTabIndex != 1 || value is not { Count : 1 } )
102- DiffContext = null ;
103- else
104- DiffContext = new DiffContext ( _repo . FullPath , new Models . DiffOption ( _commit , value [ 0 ] ) , _diffContext ) ;
105- }
99+ if ( SetProperty ( ref _changeSelection , value ) )
100+ UpdateDetails ( ) ;
106101 }
107102 }
108103
@@ -473,7 +468,7 @@ private void Refresh()
473468 {
474469 Changes = [ ] ;
475470 VisibleChanges = [ ] ;
476- SelectedChanges = null ;
471+ ChangeSelection = new ( null ) ;
477472 return ;
478473 }
479474
@@ -536,14 +531,22 @@ private void Refresh()
536531 VisibleChanges = visible ;
537532
538533 if ( visible . Count == 0 )
539- SelectedChanges = null ;
534+ ChangeSelection = new ( null ) ;
540535 else
541- SelectedChanges = [ VisibleChanges [ 0 ] ] ;
536+ ChangeSelection = new ( VisibleChanges . GetRange ( 0 , 1 ) ) ;
542537 } ) ;
543538 }
544539 } , token ) ;
545540 }
546541
542+ private void UpdateDetails ( )
543+ {
544+ if ( ActiveTabIndex == 1 && _changeSelection is { Count : 1 , IsSingleFolder : false } )
545+ DiffContext = new DiffContext ( _repo . FullPath , new Models . DiffOption ( _commit , _changeSelection . Changes [ 0 ] ) , _diffContext ) ;
546+ else
547+ DiffContext = null ;
548+ }
549+
547550 private async Task < Models . InlineElementCollector > ParseInlinesInMessageAsync ( string message )
548551 {
549552 var inlines = new Models . InlineElementCollector ( ) ;
@@ -737,7 +740,7 @@ private async Task SetViewingCommitAsync(Models.Object file)
737740 private Models . CommitSignInfo _signInfo = null ;
738741 private List < Models . Change > _changes = [ ] ;
739742 private List < Models . Change > _visibleChanges = [ ] ;
740- private List < Models . Change > _selectedChanges = null ;
743+ private ChangeSelection _changeSelection = new ( null ) ;
741744 private string _searchChangeFilter = string . Empty ;
742745 private DiffContext _diffContext = null ;
743746 private string _viewRevisionFilePath = string . Empty ;
0 commit comments