@@ -965,29 +965,45 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
965
965
menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
966
966
}
967
967
968
- var history = new MenuItem ( ) ;
969
- history . Header = App . Text ( hasSelectedFolder ? "DirHistories" : "FileHistory" ) ;
970
- history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
971
- history . Click += ( _ , e ) =>
968
+ if ( hasSelectedFolder )
972
969
{
973
- if ( hasSelectedFolder )
970
+ var history = new MenuItem ( ) ;
971
+ history . Header = App . Text ( "DirHistories" ) ;
972
+ history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
973
+ history . Click += ( _ , e ) =>
974
+ {
974
975
App . ShowWindow ( new DirHistories ( _repo , selectedSingleFolder ) ) ;
975
- else
976
+ e . Handled = true ;
977
+ } ;
978
+
979
+ menu . Items . Add ( history ) ;
980
+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
981
+ }
982
+ else if ( change . WorkTree is not ( Models . ChangeState . Untracked or Models . ChangeState . Added ) )
983
+ {
984
+ var history = new MenuItem ( ) ;
985
+ history . Header = App . Text ( "FileHistory" ) ;
986
+ history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
987
+ history . Click += ( _ , e ) =>
988
+ {
976
989
App . ShowWindow ( new FileHistories ( _repo , change . Path ) ) ;
990
+ e . Handled = true ;
991
+ } ;
977
992
978
- e . Handled = true ;
979
- } ;
993
+ var blame = new MenuItem ( ) ;
994
+ blame . Header = App . Text ( "Blame" ) + " (HEAD-only)" ;
995
+ blame . Icon = App . CreateMenuIcon ( "Icons.Blame" ) ;
996
+ blame . Click += async ( _ , ev ) =>
997
+ {
998
+ var commit = await new Commands . QuerySingleCommit ( _repo . FullPath , "HEAD" ) . GetResultAsync ( ) ;
999
+ App . ShowWindow ( new Blame ( _repo . FullPath , change . Path , commit ) ) ;
1000
+ ev . Handled = true ;
1001
+ } ;
980
1002
981
- var blame = new MenuItem ( ) ;
982
- blame . Header = App . Text ( "Blame" ) ;
983
- blame . Icon = App . CreateMenuIcon ( "Icons.Blame" ) ;
984
- blame . IsEnabled = change . Index != Models . ChangeState . Deleted ;
985
- blame . Click += async ( _ , ev ) =>
986
- {
987
- var commit = await new Commands . QuerySingleCommit ( _repo . FullPath , "HEAD" ) . GetResultAsync ( ) ;
988
- App . ShowWindow ( new Blame ( _repo . FullPath , change . Path , commit ) ) ;
989
- ev . Handled = true ;
990
- } ;
1003
+ menu . Items . Add ( history ) ;
1004
+ menu . Items . Add ( blame ) ;
1005
+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1006
+ }
991
1007
992
1008
var copy = new MenuItem ( ) ;
993
1009
copy . Header = App . Text ( "CopyPath" ) ;
@@ -1007,12 +1023,6 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
1007
1023
e . Handled = true ;
1008
1024
} ;
1009
1025
1010
- menu . Items . Add ( history ) ;
1011
- if ( hasSelectedFolder == false )
1012
- {
1013
- menu . Items . Add ( blame ) ;
1014
- }
1015
- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1016
1026
menu . Items . Add ( copy ) ;
1017
1027
menu . Items . Add ( copyFullPath ) ;
1018
1028
}
@@ -1174,9 +1184,6 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
1174
1184
addToIgnore . Icon = App . CreateMenuIcon ( "Icons.GitIgnore" ) ;
1175
1185
addToIgnore . Items . Add ( ignoreFolder ) ;
1176
1186
1177
- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1178
- menu . Items . Add ( addToIgnore ) ;
1179
-
1180
1187
var history = new MenuItem ( ) ;
1181
1188
history . Header = App . Text ( "DirHistories" ) ;
1182
1189
history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
@@ -1185,8 +1192,6 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
1185
1192
App . ShowWindow ( new DirHistories ( _repo , selectedSingleFolder ) ) ;
1186
1193
e . Handled = true ;
1187
1194
} ;
1188
- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1189
- menu . Items . Add ( history ) ;
1190
1195
1191
1196
var copy = new MenuItem ( ) ;
1192
1197
copy . Header = App . Text ( "CopyPath" ) ;
@@ -1205,6 +1210,11 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
1205
1210
await App . CopyTextAsync ( Native . OS . GetAbsPath ( _repo . FullPath , selectedSingleFolder ) ) ;
1206
1211
e . Handled = true ;
1207
1212
} ;
1213
+
1214
+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1215
+ menu . Items . Add ( addToIgnore ) ;
1216
+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1217
+ menu . Items . Add ( history ) ;
1208
1218
menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1209
1219
menu . Items . Add ( copy ) ;
1210
1220
menu . Items . Add ( copyFullPath ) ;
@@ -1445,28 +1455,45 @@ public ContextMenu CreateContextMenuForStagedChanges(string selectedSingleFolder
1445
1455
menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1446
1456
}
1447
1457
1448
- var history = new MenuItem ( ) ;
1449
- history . Header = App . Text ( hasSelectedFolder ? "DirHistories" : "FileHistory" ) ;
1450
- history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
1451
- history . Click += ( _ , e ) =>
1458
+ if ( hasSelectedFolder )
1452
1459
{
1453
- if ( hasSelectedFolder )
1460
+ var history = new MenuItem ( ) ;
1461
+ history . Header = App . Text ( "DirHistories" ) ;
1462
+ history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
1463
+ history . Click += ( _ , e ) =>
1464
+ {
1454
1465
App . ShowWindow ( new DirHistories ( _repo , selectedSingleFolder ) ) ;
1455
- else
1456
- App . ShowWindow ( new FileHistories ( _repo , change . Path ) ) ;
1457
- e . Handled = true ;
1458
- } ;
1466
+ e . Handled = true ;
1467
+ } ;
1459
1468
1460
- var blame = new MenuItem ( ) ;
1461
- blame . Header = App . Text ( "Blame" ) ;
1462
- blame . Icon = App . CreateMenuIcon ( "Icons.Blame" ) ;
1463
- blame . IsEnabled = change . Index != Models . ChangeState . Deleted ;
1464
- blame . Click += async ( _ , ev ) =>
1469
+ menu . Items . Add ( history ) ;
1470
+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1471
+ }
1472
+ else if ( change . Index is not ( Models . ChangeState . Added or Models . ChangeState . Renamed ) )
1465
1473
{
1466
- var commit = await new Commands . QuerySingleCommit ( _repo . FullPath , "HEAD" ) . GetResultAsync ( ) ;
1467
- App . ShowWindow ( new Blame ( _repo . FullPath , change . Path , commit ) ) ;
1468
- ev . Handled = true ;
1469
- } ;
1474
+ var history = new MenuItem ( ) ;
1475
+ history . Header = App . Text ( "FileHistory" ) ;
1476
+ history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
1477
+ history . Click += ( _ , e ) =>
1478
+ {
1479
+ App . ShowWindow ( new FileHistories ( _repo , change . Path ) ) ;
1480
+ e . Handled = true ;
1481
+ } ;
1482
+
1483
+ var blame = new MenuItem ( ) ;
1484
+ blame . Header = App . Text ( "Blame" ) + " (HEAD-only)" ;
1485
+ blame . Icon = App . CreateMenuIcon ( "Icons.Blame" ) ;
1486
+ blame . Click += async ( _ , e ) =>
1487
+ {
1488
+ var commit = await new Commands . QuerySingleCommit ( _repo . FullPath , "HEAD" ) . GetResultAsync ( ) ;
1489
+ App . ShowWindow ( new Blame ( _repo . FullPath , change . Path , commit ) ) ;
1490
+ e . Handled = true ;
1491
+ } ;
1492
+
1493
+ menu . Items . Add ( history ) ;
1494
+ menu . Items . Add ( blame ) ;
1495
+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1496
+ }
1470
1497
1471
1498
var copyPath = new MenuItem ( ) ;
1472
1499
copyPath . Header = App . Text ( "CopyPath" ) ;
@@ -1487,12 +1514,6 @@ public ContextMenu CreateContextMenuForStagedChanges(string selectedSingleFolder
1487
1514
e . Handled = true ;
1488
1515
} ;
1489
1516
1490
- menu . Items . Add ( history ) ;
1491
- if ( hasSelectedFolder == false )
1492
- {
1493
- menu . Items . Add ( blame ) ;
1494
- }
1495
- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1496
1517
menu . Items . Add ( copyPath ) ;
1497
1518
menu . Items . Add ( copyFullPath ) ;
1498
1519
}
@@ -1574,7 +1595,7 @@ public ContextMenu CreateContextMenuForStagedChanges(string selectedSingleFolder
1574
1595
if ( hasSelectedFolder )
1575
1596
{
1576
1597
var history = new MenuItem ( ) ;
1577
- history . Header = App . Text ( hasSelectedFolder ? "DirHistories" : "FileHistory ") ;
1598
+ history . Header = App . Text ( "DirHistories" ) ;
1578
1599
history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
1579
1600
history . Click += ( _ , e ) =>
1580
1601
{
0 commit comments