@@ -557,6 +557,7 @@ private void OnTreeContextRequested(object _1, ContextRequestedEventArgs _2)
557557 var deleteMulti = new MenuItem ( ) ;
558558 deleteMulti . Header = App . Text ( "BranchCM.DeleteMultiBranches" , branches . Count ) ;
559559 deleteMulti . Icon = this . CreateMenuIcon ( "Icons.Clear" ) ;
560+ deleteMulti . Tag = "Delete/Back" ;
560561 deleteMulti . Click += ( _ , ev ) =>
561562 {
562563 repo . DeleteMultipleBranches ( branches , branches [ 0 ] . IsLocal ) ;
@@ -579,43 +580,59 @@ private void OnTreeKeyDown(object _, KeyEventArgs e)
579580 {
580581 RaiseEvent ( new RoutedEventArgs ( SearchRequestedEvent ) ) ;
581582 e . Handled = true ;
582- return ;
583583 }
584+ else if ( ( e . Key == Key . Delete || e . Key == Key . Back ) && e . KeyModifiers == KeyModifiers . None )
585+ {
586+ var repo = DataContext as ViewModels . Repository ;
587+ if ( repo ? . Settings == null )
588+ return ;
584589
585- if ( e . Key is not ( Key . Delete or Key . Back ) )
586- return ;
590+ var selected = BranchesPresenter . SelectedItems ;
591+ if ( selected == null || selected . Count == 0 )
592+ return ;
587593
588- var repo = DataContext as ViewModels . Repository ;
589- if ( repo ? . Settings == null )
590- return ;
594+ if ( selected . Count == 1 && selected [ 0 ] is ViewModels . BranchTreeNode { Backend : Models . Remote remote } )
595+ {
596+ repo . DeleteRemote ( remote ) ;
597+ e . Handled = true ;
598+ return ;
599+ }
591600
592- var selected = BranchesPresenter . SelectedItems ;
593- if ( selected == null || selected . Count == 0 )
594- return ;
601+ var branches = new List < Models . Branch > ( ) ;
602+ foreach ( var item in selected )
603+ {
604+ if ( item is ViewModels . BranchTreeNode node )
605+ CollectBranchesInNode ( branches , node ) ;
606+ }
607+
608+ if ( branches . Find ( x => x . IsCurrent ) != null )
609+ return ;
610+
611+ if ( branches . Count == 1 )
612+ repo . DeleteBranch ( branches [ 0 ] ) ;
613+ else
614+ repo . DeleteMultipleBranches ( branches , branches [ 0 ] . IsLocal ) ;
595615
596- if ( selected . Count == 1 && selected [ 0 ] is ViewModels . BranchTreeNode { Backend : Models . Remote remote } )
597- {
598- repo . DeleteRemote ( remote ) ;
599616 e . Handled = true ;
600- return ;
601617 }
602-
603- var branches = new List < Models . Branch > ( ) ;
604- foreach ( var item in selected )
618+ else if ( e . Key == Key . F2 && e . KeyModifiers == KeyModifiers . None )
605619 {
606- if ( item is ViewModels . BranchTreeNode node )
607- CollectBranchesInNode ( branches , node ) ;
608- }
620+ var repo = DataContext as ViewModels . Repository ;
621+ if ( repo ? . Settings == null )
622+ return ;
609623
610- if ( branches . Find ( x => x . IsCurrent ) != null )
611- return ;
624+ var selected = BranchesPresenter . SelectedItems ;
625+ if ( selected == null || selected . Count != 1 )
626+ return ;
612627
613- if ( branches . Count == 1 )
614- repo . DeleteBranch ( branches [ 0 ] ) ;
615- else
616- repo . DeleteMultipleBranches ( branches , branches [ 0 ] . IsLocal ) ;
628+ if ( selected [ 0 ] is ViewModels . BranchTreeNode { Backend : Models . Branch { IsLocal : true } branch } )
629+ {
630+ if ( repo . CanCreatePopup ( ) )
631+ repo . ShowPopup ( new ViewModels . RenameBranch ( repo , branch ) ) ;
617632
618- e . Handled = true ;
633+ e . Handled = true ;
634+ }
635+ }
619636 }
620637
621638 private async void OnDoubleTappedBranchNode ( object sender , TappedEventArgs _ )
@@ -928,6 +945,7 @@ private ContextMenu CreateContextMenuForLocalBranch(ViewModels.Repository repo,
928945 var rename = new MenuItem ( ) ;
929946 rename . Header = App . Text ( "BranchCM.Rename" , branch . Name ) ;
930947 rename . Icon = this . CreateMenuIcon ( "Icons.Rename" ) ;
948+ rename . Tag = "F2" ;
931949 rename . Click += ( _ , e ) =>
932950 {
933951 if ( repo . CanCreatePopup ( ) )
@@ -938,6 +956,7 @@ private ContextMenu CreateContextMenuForLocalBranch(ViewModels.Repository repo,
938956 var delete = new MenuItem ( ) ;
939957 delete . Header = App . Text ( "BranchCM.Delete" , branch . Name ) ;
940958 delete . Icon = this . CreateMenuIcon ( "Icons.Clear" ) ;
959+ delete . Tag = "Delete/Back" ;
941960 delete . IsEnabled = ! branch . IsCurrent ;
942961 delete . Click += ( _ , e ) =>
943962 {
@@ -1242,6 +1261,7 @@ public ContextMenu CreateContextMenuForRemoteBranch(ViewModels.Repository repo,
12421261 var delete = new MenuItem ( ) ;
12431262 delete . Header = App . Text ( "BranchCM.Delete" , name ) ;
12441263 delete . Icon = this . CreateMenuIcon ( "Icons.Clear" ) ;
1264+ delete . Tag = "Delete/Back" ;
12451265 delete . Click += ( _ , e ) =>
12461266 {
12471267 if ( repo . CanCreatePopup ( ) )
0 commit comments