From b6667a8352fb4fc07728581b1a325e77047dd622 Mon Sep 17 00:00:00 2001 From: Vova Date: Wed, 8 Jan 2025 22:45:33 +1000 Subject: [PATCH] multiple fixes, variable typo fixes, adherence to a certain style. Fixed initialization of the new function, defaults to 0 --- src/Ryujinx.Input.SDL2/SDL2Gamepad.cs | 10 ++++----- src/Ryujinx.Input.SDL2/SDL2Keyboard.cs | 2 +- src/Ryujinx.Input.SDL2/SDL2Mouse.cs | 2 +- src/Ryujinx.Input/HLE/NpadController.cs | 2 +- src/Ryujinx.Input/HLE/NpadManager.cs | 8 ++++--- src/Ryujinx.Input/IGamepad.cs | 2 +- src/Ryujinx/AppHost.cs | 14 ++++++------ src/Ryujinx/Assets/locales.json | 2 +- src/Ryujinx/Headless/HeadlessRyujinx.cs | 6 ++--- src/Ryujinx/Headless/Metal/MetalWindow.cs | 4 ++-- src/Ryujinx/Headless/OpenGL/OpenGLWindow.cs | 4 ++-- src/Ryujinx/Headless/Options.cs | 6 ++--- src/Ryujinx/Headless/Vulkan/VulkanWindow.cs | 4 ++-- src/Ryujinx/Headless/WindowBase.cs | 6 ++--- src/Ryujinx/Input/AvaloniaKeyboard.cs | 2 +- src/Ryujinx/Input/AvaloniaMouse.cs | 2 +- .../UI/ViewModels/SettingsViewModel.cs | 22 +++++++++---------- .../UI/Views/Settings/SettingsInputView.axaml | 4 ++-- .../Configuration/ConfigurationFileFormat.cs | 2 +- .../ConfigurationState.Migration.cs | 4 ++-- .../Configuration/ConfigurationState.Model.cs | 4 ++-- .../Configuration/ConfigurationState.cs | 4 ++-- 22 files changed, 59 insertions(+), 57 deletions(-) diff --git a/src/Ryujinx.Input.SDL2/SDL2Gamepad.cs b/src/Ryujinx.Input.SDL2/SDL2Gamepad.cs index 26aa496a3..7e8bd4167 100644 --- a/src/Ryujinx.Input.SDL2/SDL2Gamepad.cs +++ b/src/Ryujinx.Input.SDL2/SDL2Gamepad.cs @@ -254,16 +254,16 @@ namespace Ryujinx.Input.SDL2 } private static bool hotButtonMinus = false; - private static bool HotExit = false; + private static bool hotExit = false; - public bool spetialExit() + public bool SpecialExit() { if (hotButtonMinus) { hotButtonMinus = false; - return HotExit; + return hotExit; } - return HotExit = false; + return hotExit = false; } public GamepadStateSnapshot GetMappedStateSnapshot() @@ -299,7 +299,7 @@ namespace Ryujinx.Input.SDL2 if (rawState.IsPressed(entry.To) && hotButtonMinus) { - HotExit = true; + hotExit = true; } } diff --git a/src/Ryujinx.Input.SDL2/SDL2Keyboard.cs b/src/Ryujinx.Input.SDL2/SDL2Keyboard.cs index 0fd25a54e..ab01a9bbc 100644 --- a/src/Ryujinx.Input.SDL2/SDL2Keyboard.cs +++ b/src/Ryujinx.Input.SDL2/SDL2Keyboard.cs @@ -329,7 +329,7 @@ namespace Ryujinx.Input.SDL2 return result; } - public bool spetialExit() + public bool SpecialExit() { return false; } diff --git a/src/Ryujinx.Input.SDL2/SDL2Mouse.cs b/src/Ryujinx.Input.SDL2/SDL2Mouse.cs index d3f64d5ed..da0622db3 100644 --- a/src/Ryujinx.Input.SDL2/SDL2Mouse.cs +++ b/src/Ryujinx.Input.SDL2/SDL2Mouse.cs @@ -25,7 +25,7 @@ namespace Ryujinx.Input.SDL2 { _driver = driver; } - public bool spetialExit() + public bool SpecialExit() { return false; } diff --git a/src/Ryujinx.Input/HLE/NpadController.cs b/src/Ryujinx.Input/HLE/NpadController.cs index 991311d02..f41c2af7f 100644 --- a/src/Ryujinx.Input/HLE/NpadController.cs +++ b/src/Ryujinx.Input/HLE/NpadController.cs @@ -284,7 +284,7 @@ namespace Ryujinx.Input.HLE { State = gamepad.GetMappedStateSnapshot(); - if (gamepad.spetialExit()) + if (gamepad.SpecialExit()) { return true; } diff --git a/src/Ryujinx.Input/HLE/NpadManager.cs b/src/Ryujinx.Input/HLE/NpadManager.cs index 6955f1d2e..9d07d9c22 100644 --- a/src/Ryujinx.Input/HLE/NpadManager.cs +++ b/src/Ryujinx.Input/HLE/NpadManager.cs @@ -202,7 +202,7 @@ namespace Ryujinx.Input.HLE public bool Update(float aspectRatio = 1) { - bool spetialExit = false; + bool specialExit = false; lock (_lock) { @@ -227,7 +227,9 @@ namespace Ryujinx.Input.HLE DriverConfigurationUpdate(ref controller, inputConfig); controller.UpdateUserConfiguration(inputConfig); - spetialExit = controller.Update(); //hotkey press check + + specialExit = controller.Update(); //hotkey press check + controller.UpdateRumble(_device.Hid.Npads.GetRumbleQueue(playerIndex)); inputState = controller.GetHLEInputState(); @@ -318,7 +320,7 @@ namespace Ryujinx.Input.HLE _device.TamperMachine.UpdateInput(hleInputStates); } - return spetialExit; + return specialExit; } internal InputConfig GetPlayerInputConfigByIndex(int index) diff --git a/src/Ryujinx.Input/IGamepad.cs b/src/Ryujinx.Input/IGamepad.cs index 8e6a8e33f..f52703e19 100644 --- a/src/Ryujinx.Input/IGamepad.cs +++ b/src/Ryujinx.Input/IGamepad.cs @@ -83,7 +83,7 @@ namespace Ryujinx.Input /// Gets the state if the minus and plus buttons were pressed on the gamepad. /// /// returns true if the buttons were pressed. - bool spetialExit(); + bool SpecialExit(); /// /// Get a snaphost of the state of the gamepad. diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs index c16cd5e11..c98c7c964 100644 --- a/src/Ryujinx/AppHost.cs +++ b/src/Ryujinx/AppHost.cs @@ -71,7 +71,7 @@ namespace Ryujinx.Ava private const float MaxResolutionScale = 4.0f; // Max resolution hotkeys can scale to before wrapping. private const int TargetFps = 60; private const float VolumeDelta = 0.05f; - static bool spetialExit = false; + static bool SpecialExit = false; private static readonly Cursor _invisibleCursor = new(StandardCursorType.None); private readonly nint _invisibleCursorWin; @@ -512,7 +512,7 @@ namespace Ryujinx.Ava public bool IsSpecialExit() { - return spetialExit; + return SpecialExit; } private void UpdateIgnoreMissingServicesState(object sender, ReactiveEventArgs args) @@ -1212,9 +1212,9 @@ namespace Ryujinx.Ava if (NpadManager.Update(ConfigurationState.Instance.Graphics.AspectRatio.Value.ToFloat())) { - if (ConfigurationState.Instance.Hid.SpetialExitEmulator.Value == 1) + if (ConfigurationState.Instance.Hid.specialExitEmulator.Value == 1) { - spetialExit = true; + SpecialExit = true; } @@ -1223,11 +1223,11 @@ namespace Ryujinx.Ava if (NpadManager.Update(ConfigurationState.Instance.Graphics.AspectRatio.Value.ToFloat())) { - if (ConfigurationState.Instance.Hid.SpetialExitEmulator.Value == 1) + if (ConfigurationState.Instance.Hid.specialExitEmulator.Value == 1) { - spetialExit = true; // close App + SpecialExit = true; // close App } - if (ConfigurationState.Instance.Hid.SpetialExitEmulator.Value > 0) + if (ConfigurationState.Instance.Hid.specialExitEmulator.Value > 0) { _isActive = false; //close game diff --git a/src/Ryujinx/Assets/locales.json b/src/Ryujinx/Assets/locales.json index 634cc60eb..7c4978f0f 100644 --- a/src/Ryujinx/Assets/locales.json +++ b/src/Ryujinx/Assets/locales.json @@ -15248,7 +15248,7 @@ } }, { - "ID": "spetialExitTooltip", + "ID": "SpecialExitTooltip", "Translations": { "ar_SA": "يقوم بتفعيل مفاتيح الاختصار 'زائد' و 'ناقص'.\nاضغط على زرّي زائد وناقص في نفس الوقت لتنفيذ إحدى العمليات:\n\n1) إغلاق التطبيق باستخدام مفاتيح الاختصار.\n2) الخروج من اللعبة دون إغلاق التطبيق.\n\nيعمل فقط مع أذرع التحكم.", "de_DE": "Aktiviert die Hotkeys 'Plus' und 'Minus'.\nDrücken Sie gleichzeitig die Plus- und Minus-Tasten, um eine der folgenden Aktionen auszuführen:\n\n1) Schließt die Anwendung durch Drücken der Hotkeys.\n2) Beendet das Spiel, ohne die Anwendung zu schließen.\n\nFunktioniert nur mit Gamepads.", diff --git a/src/Ryujinx/Headless/HeadlessRyujinx.cs b/src/Ryujinx/Headless/HeadlessRyujinx.cs index 4be23245d..98636d4ff 100644 --- a/src/Ryujinx/Headless/HeadlessRyujinx.cs +++ b/src/Ryujinx/Headless/HeadlessRyujinx.cs @@ -350,11 +350,11 @@ namespace Ryujinx.Headless { return options.GraphicsBackend switch { - GraphicsBackend.Vulkan => new VulkanWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableMouse, options.HideCursorMode, options.IgnoreControllerApplet, options.spetialExit), + GraphicsBackend.Vulkan => new VulkanWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableMouse, options.HideCursorMode, options.IgnoreControllerApplet, options.SpecialExit), GraphicsBackend.Metal => OperatingSystem.IsMacOS() ? - new MetalWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableKeyboard, options.HideCursorMode, options.IgnoreControllerApplet, options.spetialExit) : + new MetalWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableKeyboard, options.HideCursorMode, options.IgnoreControllerApplet, options.SpecialExit) : throw new Exception("Attempted to use Metal renderer on non-macOS platform!"), - _ => new OpenGLWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableMouse, options.HideCursorMode, options.IgnoreControllerApplet, options.spetialExit) + _ => new OpenGLWindow(_inputManager, options.LoggingGraphicsDebugLevel, options.AspectRatio, options.EnableMouse, options.HideCursorMode, options.IgnoreControllerApplet, options.SpecialExit) }; } diff --git a/src/Ryujinx/Headless/Metal/MetalWindow.cs b/src/Ryujinx/Headless/Metal/MetalWindow.cs index 3afe65ae1..1ae8f5ee4 100644 --- a/src/Ryujinx/Headless/Metal/MetalWindow.cs +++ b/src/Ryujinx/Headless/Metal/MetalWindow.cs @@ -24,8 +24,8 @@ namespace Ryujinx.Headless bool enableMouse, HideCursorMode hideCursorMode, bool ignoreControllerApplet, - int SpetialExitEmulator) - : base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, SpetialExitEmulator) { } + int specialExitEmulator) + : base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, specialExitEmulator) { } public override SDL_WindowFlags GetWindowFlags() => SDL_WindowFlags.SDL_WINDOW_METAL; diff --git a/src/Ryujinx/Headless/OpenGL/OpenGLWindow.cs b/src/Ryujinx/Headless/OpenGL/OpenGLWindow.cs index eedf74017..ca4f48861 100644 --- a/src/Ryujinx/Headless/OpenGL/OpenGLWindow.cs +++ b/src/Ryujinx/Headless/OpenGL/OpenGLWindow.cs @@ -119,8 +119,8 @@ namespace Ryujinx.Headless bool enableMouse, HideCursorMode hideCursorMode, bool ignoreControllerApplet, - int SpetialExitEmulator) - : base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, SpetialExitEmulator) + int specialExitEmulator) + : base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, specialExitEmulator) { _glLogLevel = glLogLevel; } diff --git a/src/Ryujinx/Headless/Options.cs b/src/Ryujinx/Headless/Options.cs index c4cedb4e2..62edea497 100644 --- a/src/Ryujinx/Headless/Options.cs +++ b/src/Ryujinx/Headless/Options.cs @@ -151,8 +151,8 @@ namespace Ryujinx.Headless if (NeedsOverride(nameof(IgnoreControllerApplet))) IgnoreControllerApplet = configurationState.IgnoreApplet; - if (NeedsOverride(nameof(spetialExit))) - spetialExit = configurationState.Hid.SpetialExitEmulator; + if (NeedsOverride(nameof(SpecialExit))) + SpecialExit = configurationState.Hid.specialExitEmulator; return; @@ -278,7 +278,7 @@ namespace Ryujinx.Headless public bool EnableMouse { get; set; } [Option("enable-press-hotkeys-to-exit", Required = false, Default = 0, HelpText = "press the minus and plus buttons to: 0 -disable, 1 - exit app, 2 - exit game.")] - public int spetialExit { get; set; } + public int SpecialExit { get; set; } [Option("hide-cursor", Required = false, Default = HideCursorMode.OnIdle, HelpText = "Change when the cursor gets hidden.")] public HideCursorMode HideCursorMode { get; set; } diff --git a/src/Ryujinx/Headless/Vulkan/VulkanWindow.cs b/src/Ryujinx/Headless/Vulkan/VulkanWindow.cs index d31586718..9819bbc9b 100644 --- a/src/Ryujinx/Headless/Vulkan/VulkanWindow.cs +++ b/src/Ryujinx/Headless/Vulkan/VulkanWindow.cs @@ -19,8 +19,8 @@ namespace Ryujinx.Headless bool enableMouse, HideCursorMode hideCursorMode, bool ignoreControllerApplet, - int SpetialExitEmulator) - : base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, SpetialExitEmulator) + int specialExitEmulator) + : base(inputManager, glLogLevel, aspectRatio, enableMouse, hideCursorMode, ignoreControllerApplet, specialExitEmulator) { _glLogLevel = glLogLevel; } diff --git a/src/Ryujinx/Headless/WindowBase.cs b/src/Ryujinx/Headless/WindowBase.cs index f30280257..4e4d5a4d4 100644 --- a/src/Ryujinx/Headless/WindowBase.cs +++ b/src/Ryujinx/Headless/WindowBase.cs @@ -88,7 +88,7 @@ namespace Ryujinx.Headless private readonly AspectRatio _aspectRatio; private readonly bool _enableMouse; - private readonly int _SpetialExitEmulator; + private readonly int _specialExitEmulator; private readonly bool _ignoreControllerApplet; public WindowBase( @@ -98,7 +98,7 @@ namespace Ryujinx.Headless bool enableMouse, HideCursorMode hideCursorMode, bool ignoreControllerApplet, - int SpetialExitEmulator) + int specialExitEmulator) { MouseDriver = new SDL2MouseDriver(hideCursorMode); _inputManager = inputManager; @@ -114,7 +114,7 @@ namespace Ryujinx.Headless _gpuDoneEvent = new ManualResetEvent(false); _aspectRatio = aspectRatio; _enableMouse = enableMouse; - _SpetialExitEmulator = SpetialExitEmulator; + _specialExitEmulator = specialExitEmulator; _ignoreControllerApplet = ignoreControllerApplet; HostUITheme = new HeadlessHostUiTheme(); diff --git a/src/Ryujinx/Input/AvaloniaKeyboard.cs b/src/Ryujinx/Input/AvaloniaKeyboard.cs index 12a4d6f46..8936513ca 100644 --- a/src/Ryujinx/Input/AvaloniaKeyboard.cs +++ b/src/Ryujinx/Input/AvaloniaKeyboard.cs @@ -30,7 +30,7 @@ namespace Ryujinx.Ava.Input public readonly Key From = from; } - public bool spetialExit() + public bool SpecialExit() { return false; } diff --git a/src/Ryujinx/Input/AvaloniaMouse.cs b/src/Ryujinx/Input/AvaloniaMouse.cs index 871c16bc7..cdcdc2106 100644 --- a/src/Ryujinx/Input/AvaloniaMouse.cs +++ b/src/Ryujinx/Input/AvaloniaMouse.cs @@ -13,7 +13,7 @@ namespace Ryujinx.Ava.Input public string Id => "0"; public string Name => "AvaloniaMouse"; - public bool spetialExit() + public bool SpecialExit() { return false; } diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs index bda93b83d..bbb78e912 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs @@ -128,7 +128,7 @@ namespace Ryujinx.Ava.UI.ViewModels public bool EnableDockedMode { get; set; } public bool EnableKeyboard { get; set; } public bool EnableMouse { get; set; } - public int EnableSpetialExit { get; set; } + public int EnableSpecialExit { get; set; } public VSyncMode VSyncMode { get => _vSyncMode; @@ -514,12 +514,12 @@ namespace Ryujinx.Ava.UI.ViewModels EnableDockedMode = config.System.EnableDockedMode; EnableKeyboard = config.Hid.EnableKeyboard; EnableMouse = config.Hid.EnableMouse; - EnableSpetialExit = config.Hid.SpetialExitEmulator.Value switch + EnableSpecialExit = config.Hid.specialExitEmulator.Value switch { - 0=> 0, //"Hotkey 'Exit' is Disabled" - 1=> 1, //"Close app. by hotkey" - 2=> 2, // "Close game by hotkey" - _ => 0 //"Hotkey 'Exit' is Disabled" + 0=> 0, // "Hotkey 'Exit' is Disabled" + 1=> 1, // "Close app. by hotkey" + 2=> 2, // "Close game by hotkey" + _ => 0 // "Hotkey 'Exit' is Disabled" }; // Keyboard Hotkeys @@ -628,12 +628,12 @@ namespace Ryujinx.Ava.UI.ViewModels config.System.EnableDockedMode.Value = EnableDockedMode; config.Hid.EnableKeyboard.Value = EnableKeyboard; config.Hid.EnableMouse.Value = EnableMouse; - config.Hid.SpetialExitEmulator.Value = EnableSpetialExit switch + config.Hid.specialExitEmulator.Value = EnableSpecialExit switch { - 0 => 0, //"Hotkey 'Exit' is Disabled", - 1 => 1, //"Close app. by hotkey", - 2 => 2, //"Close game by hotkey", - _ => 0, //"Hotkey 'Exit' is Disabled" + 0 => 0, // "Hotkey 'Exit' is Disabled", + 1 => 1, // "Close app. by hotkey", + 2 => 2, // "Close game by hotkey", + _ => 0, // "Hotkey 'Exit' is Disabled" }; // Keyboard Hotkeys diff --git a/src/Ryujinx/UI/Views/Settings/SettingsInputView.axaml b/src/Ryujinx/UI/Views/Settings/SettingsInputView.axaml index 187491233..033352548 100644 --- a/src/Ryujinx/UI/Views/Settings/SettingsInputView.axaml +++ b/src/Ryujinx/UI/Views/Settings/SettingsInputView.axaml @@ -58,8 +58,8 @@ - diff --git a/src/Ryujinx/Utilities/Configuration/ConfigurationFileFormat.cs b/src/Ryujinx/Utilities/Configuration/ConfigurationFileFormat.cs index 96d5543ab..9fb2169d9 100644 --- a/src/Ryujinx/Utilities/Configuration/ConfigurationFileFormat.cs +++ b/src/Ryujinx/Utilities/Configuration/ConfigurationFileFormat.cs @@ -369,7 +369,7 @@ namespace Ryujinx.Ava.Utilities.Configuration /// /// Allows you to choose from three options: do nothing, exit the application, exit the emulator /// - public int SpetialExitEmulator { get; set; } + public int specialExitEmulator { get; set; } /// /// Hotkey Keyboard Bindings diff --git a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs index c627fe29a..2308a1508 100644 --- a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs +++ b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs @@ -136,7 +136,7 @@ namespace Ryujinx.Ava.Utilities.Configuration Hid.EnableKeyboard.Value = cff.EnableKeyboard; Hid.EnableMouse.Value = cff.EnableMouse; - Hid.SpetialExitEmulator.Value = cff.SpetialExitEmulator; + Hid.specialExitEmulator.Value = cff.specialExitEmulator; Hid.Hotkeys.Value = cff.Hotkeys; Hid.InputConfig.Value = cff.InputConfig ?? []; @@ -418,7 +418,7 @@ namespace Ryujinx.Ava.Utilities.Configuration }), (60, static cff => { - cff.SpetialExitEmulator = 1; + cff.specialExitEmulator = 0; }) ); } diff --git a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Model.cs b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Model.cs index 6965c8efc..e19b128a6 100644 --- a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Model.cs +++ b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Model.cs @@ -423,7 +423,7 @@ namespace Ryujinx.Ava.Utilities.Configuration /// /// Allows you to choose from three options: do nothing, exit the application, exit the emulator /// - public ReactiveObject SpetialExitEmulator { get; private set; } + public ReactiveObject specialExitEmulator { get; private set; } /// /// Hotkey Keyboard Bindings @@ -441,7 +441,7 @@ namespace Ryujinx.Ava.Utilities.Configuration { EnableKeyboard = new ReactiveObject(); EnableMouse = new ReactiveObject(); - SpetialExitEmulator = new ReactiveObject(); + specialExitEmulator = new ReactiveObject(); Hotkeys = new ReactiveObject(); InputConfig = new ReactiveObject>(); } diff --git a/src/Ryujinx/Utilities/Configuration/ConfigurationState.cs b/src/Ryujinx/Utilities/Configuration/ConfigurationState.cs index 20c120f7d..861dae74b 100644 --- a/src/Ryujinx/Utilities/Configuration/ConfigurationState.cs +++ b/src/Ryujinx/Utilities/Configuration/ConfigurationState.cs @@ -128,7 +128,7 @@ namespace Ryujinx.Ava.Utilities.Configuration ShowConsole = UI.ShowConsole, EnableKeyboard = Hid.EnableKeyboard, EnableMouse = Hid.EnableMouse, - SpetialExitEmulator = Hid.SpetialExitEmulator, + specialExitEmulator = Hid.specialExitEmulator, Hotkeys = Hid.Hotkeys, KeyboardConfig = [], ControllerConfig = [], @@ -242,7 +242,7 @@ namespace Ryujinx.Ava.Utilities.Configuration UI.WindowStartup.WindowMaximized.Value = false; Hid.EnableKeyboard.Value = false; Hid.EnableMouse.Value = false; - Hid.SpetialExitEmulator.Value = 0; + Hid.specialExitEmulator.Value = 0; Hid.Hotkeys.Value = new KeyboardHotkeys { ToggleVSyncMode = Key.F1,