diff --git a/FluentTerminal.App/Services/Implementation/DefaultValueProvider.cs b/FluentTerminal.App/Services/Implementation/DefaultValueProvider.cs index cc460cc..2f87343 100644 --- a/FluentTerminal.App/Services/Implementation/DefaultValueProvider.cs +++ b/FluentTerminal.App/Services/Implementation/DefaultValueProvider.cs @@ -164,6 +164,19 @@ namespace FluentTerminal.App.Services.Implementation Key = (int)VirtualKey.F } }; + + case Command.ToggleFullScreen: + return new List + { + new KeyBinding + { + Command = Command.ToggleFullScreen, + Ctrl = false, + Alt = true, + Shift = false, + Key = (int)VirtualKey.Enter + } + }; } return null; diff --git a/FluentTerminal.App/ViewModels/MainViewModel.cs b/FluentTerminal.App/ViewModels/MainViewModel.cs index e4e3fea..16bd796 100644 --- a/FluentTerminal.App/ViewModels/MainViewModel.cs +++ b/FluentTerminal.App/ViewModels/MainViewModel.cs @@ -48,6 +48,7 @@ namespace FluentTerminal.App.ViewModels _keyboardCommandService.RegisterCommandHandler(Command.PreviousTab, SelectPreviousTab); _keyboardCommandService.RegisterCommandHandler(Command.NewWindow, NewWindow); _keyboardCommandService.RegisterCommandHandler(Command.ShowSettings, ShowSettings); + _keyboardCommandService.RegisterCommandHandler(Command.ToggleFullScreen, ToggleFullScreen); var currentTheme = _settingsService.GetCurrentTheme(); var options = _settingsService.GetTerminalOptions(); Background = currentTheme.Colors.Background; @@ -253,5 +254,19 @@ namespace FluentTerminal.App.ViewModels { ShowSettingsRequested?.Invoke(this, EventArgs.Empty); } + + private void ToggleFullScreen() + { + var applicationView = ApplicationView.GetForCurrentView(); + + if (applicationView.IsFullScreenMode) + { + applicationView.ExitFullScreenMode(); + } + else + { + applicationView.TryEnterFullScreenMode(); + } + } } } \ No newline at end of file diff --git a/FluentTerminal.App/ViewModels/Settings/KeyBindingsPageViewModel.cs b/FluentTerminal.App/ViewModels/Settings/KeyBindingsPageViewModel.cs index d5d864e..4f29310 100644 --- a/FluentTerminal.App/ViewModels/Settings/KeyBindingsPageViewModel.cs +++ b/FluentTerminal.App/ViewModels/Settings/KeyBindingsPageViewModel.cs @@ -43,6 +43,7 @@ namespace FluentTerminal.App.ViewModels.Settings Copy = CreateViewModel(Command.Copy, _keyBindings[Command.Copy]); Paste = CreateViewModel(Command.Paste, _keyBindings[Command.Paste]); Search = CreateViewModel(Command.Search, _keyBindings[Command.Search]); + FullScreen = CreateViewModel(Command.ToggleFullScreen, _keyBindings[Command.ToggleFullScreen]); RaisePropertyChanged(nameof(NewTab)); RaisePropertyChanged(nameof(ConfigurableNewTab)); @@ -55,6 +56,7 @@ namespace FluentTerminal.App.ViewModels.Settings RaisePropertyChanged(nameof(Copy)); RaisePropertyChanged(nameof(Paste)); RaisePropertyChanged(nameof(Search)); + RaisePropertyChanged(nameof(FullScreen)); } public KeyBindingsViewModel NewTab { get; private set; } @@ -68,6 +70,7 @@ namespace FluentTerminal.App.ViewModels.Settings public KeyBindingsViewModel Copy { get; private set; } public KeyBindingsViewModel Paste { get; private set; } public KeyBindingsViewModel Search { get; private set; } + public KeyBindingsViewModel FullScreen { get; private set; } public RelayCommand RestoreDefaultsCommand { get; } public RelayCommand AddCommand { get; } @@ -98,6 +101,8 @@ namespace FluentTerminal.App.ViewModels.Settings return Paste.Add(); case Command.Search: return Search.Add(); + case Command.ToggleFullScreen: + return FullScreen.Add(); } return Task.CompletedTask; diff --git a/FluentTerminal.App/Views/SettingsPages/KeyBindingSettings.xaml b/FluentTerminal.App/Views/SettingsPages/KeyBindingSettings.xaml index 1234216..a8dd742 100644 --- a/FluentTerminal.App/Views/SettingsPages/KeyBindingSettings.xaml +++ b/FluentTerminal.App/Views/SettingsPages/KeyBindingSettings.xaml @@ -88,6 +88,11 @@ Paste + + + ToggleFullScreen + + @@ -116,6 +121,7 @@ + + + + diff --git a/FluentTerminal.Models/Enums/Command.cs b/FluentTerminal.Models/Enums/Command.cs index e1743b9..3f2fd93 100644 --- a/FluentTerminal.Models/Enums/Command.cs +++ b/FluentTerminal.Models/Enums/Command.cs @@ -12,6 +12,7 @@ ShowSettings, Copy, Paste, - Search + Search, + ToggleFullScreen } }