@@ -482,6 +482,21 @@ public ContextMenu MakeContextMenu(ListBox list)
482482 } ;
483483 menu . Items . Add ( rebase ) ;
484484
485+ if ( ! commit . HasDecorators )
486+ {
487+ var merge = new MenuItem ( ) ;
488+ merge . Header = new Views . NameHighlightedTextBlock ( "CommitCM.Merge" , current . Name ) ;
489+ merge . Icon = App . CreateMenuIcon ( "Icons.Merge" ) ;
490+ merge . Click += ( _ , e ) =>
491+ {
492+ if ( PopupHost . CanCreatePopup ( ) )
493+ PopupHost . ShowPopup ( new Merge ( _repo , commit , current . Name ) ) ;
494+
495+ e . Handled = true ;
496+ } ;
497+ menu . Items . Add ( merge ) ;
498+ }
499+
485500 var cherryPick = new MenuItem ( ) ;
486501 cherryPick . Header = App . Text ( "CommitCM.CherryPick" ) ;
487502 cherryPick . Icon = App . CreateMenuIcon ( "Icons.CherryPick" ) ;
@@ -513,21 +528,6 @@ public ContextMenu MakeContextMenu(ListBox list)
513528 e . Handled = true ;
514529 } ;
515530 menu . Items . Add ( cherryPick ) ;
516-
517- if ( ! commit . HasDecorators )
518- {
519- var merge = new MenuItem ( ) ;
520- merge . Header = new Views . NameHighlightedTextBlock ( "CommitCM.Merge" , current . Name ) ;
521- merge . Icon = App . CreateMenuIcon ( "Icons.Merge" ) ;
522- merge . Click += ( _ , e ) =>
523- {
524- if ( PopupHost . CanCreatePopup ( ) )
525- PopupHost . ShowPopup ( new Merge ( _repo , commit , current . Name ) ) ;
526-
527- e . Handled = true ;
528- } ;
529- menu . Items . Add ( merge ) ;
530- }
531531 }
532532 else
533533 {
@@ -541,11 +541,29 @@ public ContextMenu MakeContextMenu(ListBox list)
541541 e . Handled = true ;
542542 } ;
543543 menu . Items . Add ( revert ) ;
544+ }
544545
546+ if ( current . Head != commit . SHA )
547+ {
548+ var checkoutCommit = new MenuItem ( ) ;
549+ checkoutCommit . Header = App . Text ( "CommitCM.Checkout" ) ;
550+ checkoutCommit . Icon = App . CreateMenuIcon ( "Icons.Detached" ) ;
551+ checkoutCommit . Click += ( _ , e ) =>
552+ {
553+ if ( PopupHost . CanCreatePopup ( ) )
554+ PopupHost . ShowPopup ( new CheckoutCommit ( _repo , commit ) ) ;
555+ e . Handled = true ;
556+ } ;
557+ menu . Items . Add ( checkoutCommit ) ;
558+ }
559+
560+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
561+
562+ if ( commit . IsMerged && current . Head != commit . SHA )
563+ {
545564 var interactiveRebase = new MenuItem ( ) ;
546565 interactiveRebase . Header = new Views . NameHighlightedTextBlock ( "CommitCM.InteractiveRebase" , current . Name ) ;
547566 interactiveRebase . Icon = App . CreateMenuIcon ( "Icons.InteractiveRebase" ) ;
548- interactiveRebase . IsVisible = current . Head != commit . SHA ;
549567 interactiveRebase . Click += ( _ , e ) =>
550568 {
551569 if ( _repo . LocalChangesCount > 0 )
@@ -562,24 +580,9 @@ public ContextMenu MakeContextMenu(ListBox list)
562580 e . Handled = true ;
563581 } ;
564582 menu . Items . Add ( interactiveRebase ) ;
583+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
565584 }
566585
567- if ( current . Head != commit . SHA )
568- {
569- var checkoutCommit = new MenuItem ( ) ;
570- checkoutCommit . Header = App . Text ( "CommitCM.Checkout" ) ;
571- checkoutCommit . Icon = App . CreateMenuIcon ( "Icons.Detached" ) ;
572- checkoutCommit . Click += ( _ , e ) =>
573- {
574- if ( PopupHost . CanCreatePopup ( ) )
575- PopupHost . ShowPopup ( new CheckoutCommit ( _repo , commit ) ) ;
576- e . Handled = true ;
577- } ;
578- menu . Items . Add ( checkoutCommit ) ;
579- }
580-
581- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
582-
583586 if ( current . Head != commit . SHA )
584587 {
585588 var compareWithHead = new MenuItem ( ) ;
0 commit comments