From ef513751be10d05ad5b53e3e1386500cd168db0a Mon Sep 17 00:00:00 2001 From: Premo <38495887+Dansla116@users.noreply.github.com> Date: Thu, 25 Apr 2024 21:22:35 -0400 Subject: [PATCH] Added option to set idle time before cursor is hidden (Ryujinx#4390) In SettingsWindow.cs and SettingsWindow.glade: Replaced Always/On Idle/Never radio buttons with a dropdown (combo box). When selecting "On Idle", a "Seconds" label and numeric text box (spinner) appear. The spinner is limited 1-10. In ConfigurationFileFormat.cs and ConfigurationState.cs, and SettingsViewModel.cs: Load the saved value, or default 5 seconds if no value exists. Save the custom set value to the config file. In SettingsViewModel.cs: Catch when the idle time setting is changed while a game is running, and change the value live. --- .../Configuration/ConfigurationState.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs index 2609dc9ba..257cd4ebd 100644 --- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs +++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs @@ -632,10 +632,15 @@ namespace Ryujinx.UI.Common.Configuration public ReactiveObject EnableHardwareAcceleration { get; private set; } /// - /// Hide Cursor on Idle + /// Whether to hide cursor on idle, always or never /// public ReactiveObject HideCursor { get; private set; } + /// + /// How many seconds to wait before hiding the cursor when set to hide on idle + /// + public ReactiveObject HideCursorIdleTime { get; private set; } + private ConfigurationState() { UI = new UISection(); @@ -649,6 +654,7 @@ namespace Ryujinx.UI.Common.Configuration ShowConfirmExit = new ReactiveObject(); EnableHardwareAcceleration = new ReactiveObject(); HideCursor = new ReactiveObject(); + HideCursorIdleTime = new ReactiveObject(); } public ConfigurationFileFormat ToFileFormat() @@ -686,6 +692,7 @@ namespace Ryujinx.UI.Common.Configuration ShowConfirmExit = ShowConfirmExit, EnableHardwareAcceleration = EnableHardwareAcceleration, HideCursor = HideCursor, + HideCursorIdleTime = HideCursorIdleTime, EnableVsync = Graphics.EnableVsync, EnableShaderCache = Graphics.EnableShaderCache, EnableTextureRecompression = Graphics.EnableTextureRecompression, @@ -794,6 +801,7 @@ namespace Ryujinx.UI.Common.Configuration ShowConfirmExit.Value = true; EnableHardwareAcceleration.Value = true; HideCursor.Value = HideCursorMode.OnIdle; + HideCursorIdleTime.Value = 5; Graphics.EnableVsync.Value = true; Graphics.EnableShaderCache.Value = true; Graphics.EnableTextureRecompression.Value = false; @@ -1491,6 +1499,7 @@ namespace Ryujinx.UI.Common.Configuration ShowConfirmExit.Value = configurationFileFormat.ShowConfirmExit; EnableHardwareAcceleration.Value = configurationFileFormat.EnableHardwareAcceleration; HideCursor.Value = configurationFileFormat.HideCursor; + HideCursorIdleTime.Value = configurationFileFormat.HideCursorIdleTime; Graphics.EnableVsync.Value = configurationFileFormat.EnableVsync; Graphics.EnableShaderCache.Value = configurationFileFormat.EnableShaderCache; Graphics.EnableTextureRecompression.Value = configurationFileFormat.EnableTextureRecompression;