diff --git a/MultiTerm.Wpf/View/ShellView.xaml b/MultiTerm.Wpf/View/ShellView.xaml index 7657cfd..bc5d383 100644 --- a/MultiTerm.Wpf/View/ShellView.xaml +++ b/MultiTerm.Wpf/View/ShellView.xaml @@ -14,6 +14,7 @@ xmlns:protocol_types="clr-namespace:MultiTerm.Protocols.Types;assembly=MultiTerm.Protocols" xmlns:helpers="clr-namespace:MultiTerm.Wpf.Helpers" mc:Ignorable="d" + KeyDown="UserControl_KeyDown" d:DesignHeight="600" d:DesignWidth="1200"> diff --git a/MultiTerm.Wpf/View/ShellView.xaml.cs b/MultiTerm.Wpf/View/ShellView.xaml.cs index 84c3eb3..a611328 100644 --- a/MultiTerm.Wpf/View/ShellView.xaml.cs +++ b/MultiTerm.Wpf/View/ShellView.xaml.cs @@ -1,5 +1,4 @@ using MultiTerm.Core.ViewModel; -using System; using System.Windows.Controls; namespace MultiTerm.Wpf.View; @@ -11,4 +10,27 @@ public partial class ShellView : UserControl InitializeComponent(); this.DataContext = App.AppHost!.Services.GetService(typeof(ShellViewModel)); } + + /// + /// Handles key down events for the whole user control. + /// + /// + /// + private void UserControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + // move tab forward + if( e.Key == System.Windows.Input.Key.Tab && + e.KeyboardDevice.Modifiers == System.Windows.Input.ModifierKeys.Control ) + { + this.terminalTabControl.SelectedIndex++; + e.Handled = true; + } + // move tab backwards + else if ( e.Key == System.Windows.Input.Key.Tab && + e.KeyboardDevice.Modifiers == (System.Windows.Input.ModifierKeys.Control & System.Windows.Input.ModifierKeys.Shift) ) + { + this.terminalTabControl.SelectedIndex--; + e.Handled = true; + } + } }