From 46ffc81d90bd3a8f2d24c2997166d22f12ecbbb6 Mon Sep 17 00:00:00 2001 From: ooa113y <13thSlayer@gmail.com> Date: Thu, 5 Aug 2021 00:28:19 +0300 Subject: [PATCH] Hide UI rework/arrow key fix (#2504) * Unbreak arrow keys * Use bitshift for Flags instead of literal --- .../Configuration/Hid/KeyboardHotkeys.cs | 3 ++- Ryujinx/Config.json | 7 ++++--- .../Configuration/ConfigurationFileFormat.cs | 2 +- Ryujinx/Configuration/ConfigurationState.cs | 17 ++++++++++++++++- Ryujinx/Ui/MainWindow.cs | 12 +++--------- Ryujinx/Ui/MainWindow.glade | 5 ++--- Ryujinx/Ui/RendererWidgetBase.cs | 18 +++++++++++++++--- 7 files changed, 43 insertions(+), 21 deletions(-) diff --git a/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs b/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs index 47772ea8..38f5ad36 100644 --- a/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs +++ b/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs @@ -4,5 +4,6 @@ { public Key ToggleVsync { get; set; } public Key Screenshot { get; set; } + public Key ShowUi { get; set; } } -} \ No newline at end of file +} diff --git a/Ryujinx/Config.json b/Ryujinx/Config.json index 3d4ea23b..504a713f 100644 --- a/Ryujinx/Config.json +++ b/Ryujinx/Config.json @@ -1,5 +1,5 @@ { - "version": 28, + "version": 29, "enable_file_log": true, "res_scale": 1, "res_scale_custom": 1, @@ -58,7 +58,8 @@ "enable_mouse": false, "hotkeys": { "toggle_vsync": "Tab", - "screenshot": "F8" + "screenshot": "F8", + "show_ui": "F4" }, "keyboard_config": [], "controller_config": [], @@ -107,4 +108,4 @@ "player_index": "Player1" } ] -} \ No newline at end of file +} diff --git a/Ryujinx/Configuration/ConfigurationFileFormat.cs b/Ryujinx/Configuration/ConfigurationFileFormat.cs index 4634dafe..65165d8d 100644 --- a/Ryujinx/Configuration/ConfigurationFileFormat.cs +++ b/Ryujinx/Configuration/ConfigurationFileFormat.cs @@ -14,7 +14,7 @@ namespace Ryujinx.Configuration /// /// The current version of the file format /// - public const int CurrentVersion = 28; + public const int CurrentVersion = 29; public int Version { get; set; } diff --git a/Ryujinx/Configuration/ConfigurationState.cs b/Ryujinx/Configuration/ConfigurationState.cs index c98fbcca..41bd64a7 100644 --- a/Ryujinx/Configuration/ConfigurationState.cs +++ b/Ryujinx/Configuration/ConfigurationState.cs @@ -543,7 +543,8 @@ namespace Ryujinx.Configuration Hid.Hotkeys.Value = new KeyboardHotkeys { ToggleVsync = Key.Tab, - Screenshot = Key.F8 + Screenshot = Key.F8, + ShowUi = Key.F4 }; Hid.InputConfig.Value = new List { @@ -859,6 +860,20 @@ namespace Ryujinx.Configuration configurationFileUpdated = true; } + if (configurationFileFormat.Version < 29) + { + Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 29."); + + configurationFileFormat.Hotkeys = new KeyboardHotkeys + { + ToggleVsync = Key.Tab, + Screenshot = Key.F8, + ShowUi = Key.F4 + }; + + configurationFileUpdated = true; + } + Logger.EnableFileLog.Value = configurationFileFormat.EnableFileLog; Graphics.ResScale.Value = configurationFileFormat.ResScale; Graphics.ResScaleCustom.Value = configurationFileFormat.ResScaleCustom; diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs index 387ae63a..8e579e78 100644 --- a/Ryujinx/Ui/MainWindow.cs +++ b/Ryujinx/Ui/MainWindow.cs @@ -101,6 +101,7 @@ namespace Ryujinx.Ui [GUI] MenuItem _simulateWakeUpMessage; [GUI] MenuItem _scanAmiibo; [GUI] MenuItem _takeScreenshot; + [GUI] MenuItem _hideUi; [GUI] MenuItem _fullScreen; [GUI] CheckMenuItem _startFullScreen; [GUI] CheckMenuItem _favToggle; @@ -243,6 +244,8 @@ namespace Ryujinx.Ui _gameTable.SearchColumn = 2; _gameTable.SearchEqualFunc = (model, col, key, iter) => !((string)model.GetValue(iter, col)).Contains(key, StringComparison.InvariantCultureIgnoreCase); + _hideUi.Label = _hideUi.Label.Replace("SHOWUIKEY", ConfigurationState.Instance.Hid.Hotkeys.Value.ShowUi.ToString()); + UpdateColumns(); UpdateGameTable(); @@ -1072,15 +1075,6 @@ namespace Ryujinx.Ui ConfigurationState.Instance.Graphics.AspectRatio.Value = ((int)aspectRatio + 1) > Enum.GetNames(typeof(AspectRatio)).Length - 1 ? AspectRatio.Fixed4x3 : aspectRatio + 1; } - private void Focus_Menu_Bar(object sender, KeyReleaseEventArgs args) - { - if (args.Event.Key == Gdk.Key.Alt_L) - { - ToggleExtraWidgets(true); - _menuBar.GrabFocus(); - } - } - private void Row_Clicked(object sender, ButtonReleaseEventArgs args) { if (args.Event.Button != 3 /* Right Click */) diff --git a/Ryujinx/Ui/MainWindow.glade b/Ryujinx/Ui/MainWindow.glade index abe96907..ff95506a 100644 --- a/Ryujinx/Ui/MainWindow.glade +++ b/Ryujinx/Ui/MainWindow.glade @@ -6,7 +6,6 @@ False Ryujinx center - True @@ -15,7 +14,7 @@ True - True + False True @@ -343,7 +342,7 @@ True False - Hide UI (Alt to show) + Hide UI (SHOWUIKEY to show) True diff --git a/Ryujinx/Ui/RendererWidgetBase.cs b/Ryujinx/Ui/RendererWidgetBase.cs index e1278b39..d099d509 100644 --- a/Ryujinx/Ui/RendererWidgetBase.cs +++ b/Ryujinx/Ui/RendererWidgetBase.cs @@ -568,6 +568,12 @@ namespace Ryujinx.Ui Renderer.Screenshot(); } + if (currentHotkeyState.HasFlag(KeyboardHotkeyState.ShowUi) && + !_prevHotkeyState.HasFlag(KeyboardHotkeyState.ShowUi)) + { + (Toplevel as MainWindow).ToggleExtraWidgets(true); + } + _prevHotkeyState = currentHotkeyState; } @@ -593,9 +599,10 @@ namespace Ryujinx.Ui [Flags] private enum KeyboardHotkeyState { - None, - ToggleVSync, - Screenshot + None = 0, + ToggleVSync = 1 << 0, + Screenshot = 1 << 1, + ShowUi = 1 << 2 } private KeyboardHotkeyState GetHotkeyState() @@ -612,6 +619,11 @@ namespace Ryujinx.Ui state |= KeyboardHotkeyState.Screenshot; } + if (_keyboardInterface.IsPressed((Key)ConfigurationState.Instance.Hid.Hotkeys.Value.ShowUi)) + { + state |= KeyboardHotkeyState.ShowUi; + } + return state; } }