@@ -965,29 +965,45 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
965965 menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
966966 }
967967
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 )
972969 {
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+ {
974975 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+ {
976989 App . ShowWindow ( new FileHistories ( _repo , change . Path ) ) ;
990+ e . Handled = true ;
991+ } ;
977992
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+ } ;
9801002
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+ }
9911007
9921008 var copy = new MenuItem ( ) ;
9931009 copy . Header = App . Text ( "CopyPath" ) ;
@@ -1007,12 +1023,6 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
10071023 e . Handled = true ;
10081024 } ;
10091025
1010- menu . Items . Add ( history ) ;
1011- if ( hasSelectedFolder == false )
1012- {
1013- menu . Items . Add ( blame ) ;
1014- }
1015- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
10161026 menu . Items . Add ( copy ) ;
10171027 menu . Items . Add ( copyFullPath ) ;
10181028 }
@@ -1174,9 +1184,6 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
11741184 addToIgnore . Icon = App . CreateMenuIcon ( "Icons.GitIgnore" ) ;
11751185 addToIgnore . Items . Add ( ignoreFolder ) ;
11761186
1177- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1178- menu . Items . Add ( addToIgnore ) ;
1179-
11801187 var history = new MenuItem ( ) ;
11811188 history . Header = App . Text ( "DirHistories" ) ;
11821189 history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
@@ -1185,8 +1192,6 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
11851192 App . ShowWindow ( new DirHistories ( _repo , selectedSingleFolder ) ) ;
11861193 e . Handled = true ;
11871194 } ;
1188- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
1189- menu . Items . Add ( history ) ;
11901195
11911196 var copy = new MenuItem ( ) ;
11921197 copy . Header = App . Text ( "CopyPath" ) ;
@@ -1205,6 +1210,11 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
12051210 await App . CopyTextAsync ( Native . OS . GetAbsPath ( _repo . FullPath , selectedSingleFolder ) ) ;
12061211 e . Handled = true ;
12071212 } ;
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 ) ;
12081218 menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
12091219 menu . Items . Add ( copy ) ;
12101220 menu . Items . Add ( copyFullPath ) ;
@@ -1445,28 +1455,45 @@ public ContextMenu CreateContextMenuForStagedChanges(string selectedSingleFolder
14451455 menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
14461456 }
14471457
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 )
14521459 {
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+ {
14541465 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+ } ;
14591468
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 ) )
14651473 {
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+ }
14701497
14711498 var copyPath = new MenuItem ( ) ;
14721499 copyPath . Header = App . Text ( "CopyPath" ) ;
@@ -1487,12 +1514,6 @@ public ContextMenu CreateContextMenuForStagedChanges(string selectedSingleFolder
14871514 e . Handled = true ;
14881515 } ;
14891516
1490- menu . Items . Add ( history ) ;
1491- if ( hasSelectedFolder == false )
1492- {
1493- menu . Items . Add ( blame ) ;
1494- }
1495- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
14961517 menu . Items . Add ( copyPath ) ;
14971518 menu . Items . Add ( copyFullPath ) ;
14981519 }
@@ -1574,7 +1595,7 @@ public ContextMenu CreateContextMenuForStagedChanges(string selectedSingleFolder
15741595 if ( hasSelectedFolder )
15751596 {
15761597 var history = new MenuItem ( ) ;
1577- history . Header = App . Text ( hasSelectedFolder ? "DirHistories" : "FileHistory ") ;
1598+ history . Header = App . Text ( "DirHistories" ) ;
15781599 history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
15791600 history . Click += ( _ , e ) =>
15801601 {
0 commit comments