mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2024-12-29 03:53:05 +00:00
Added option to set idle time before cursor is hidden
Fixes #4930 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.
This commit is contained in:
parent
e00f7518c3
commit
28c4d80865
1 changed files with 10 additions and 29 deletions
|
@ -53,9 +53,10 @@ namespace Ryujinx.UI.Windows
|
||||||
[GUI] CheckButton _discordToggle;
|
[GUI] CheckButton _discordToggle;
|
||||||
[GUI] CheckButton _checkUpdatesToggle;
|
[GUI] CheckButton _checkUpdatesToggle;
|
||||||
[GUI] CheckButton _showConfirmExitToggle;
|
[GUI] CheckButton _showConfirmExitToggle;
|
||||||
[GUI] RadioButton _hideCursorNever;
|
[GUI] ComboBoxText _hideCursorSelect;
|
||||||
[GUI] RadioButton _hideCursorOnIdle;
|
[GUI] Box _hideCursorIdleTimeBox;
|
||||||
[GUI] RadioButton _hideCursorAlways;
|
[GUI] Entry _hideCursorIdleTimeSpin;
|
||||||
|
[GUI] Adjustment _hideCursorIdleTimeSpinAdjustment;
|
||||||
[GUI] CheckButton _vSyncToggle;
|
[GUI] CheckButton _vSyncToggle;
|
||||||
[GUI] CheckButton _shaderCacheToggle;
|
[GUI] CheckButton _shaderCacheToggle;
|
||||||
[GUI] CheckButton _textureRecompressionToggle;
|
[GUI] CheckButton _textureRecompressionToggle;
|
||||||
|
@ -147,6 +148,7 @@ namespace Ryujinx.UI.Windows
|
||||||
_configureControllerH.Pressed += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Handheld);
|
_configureControllerH.Pressed += (sender, args) => ConfigureController_Pressed(sender, PlayerIndex.Handheld);
|
||||||
_systemTimeZoneEntry.FocusOutEvent += TimeZoneEntry_FocusOut;
|
_systemTimeZoneEntry.FocusOutEvent += TimeZoneEntry_FocusOut;
|
||||||
|
|
||||||
|
_hideCursorSelect.Changed += (sender, args) => _hideCursorIdleTimeBox.Visible = _hideCursorSelect.ActiveId == HideCursorMode.OnIdle.ToString();
|
||||||
_resScaleCombo.Changed += (sender, args) => _resScaleText.Visible = _resScaleCombo.ActiveId == "-1";
|
_resScaleCombo.Changed += (sender, args) => _resScaleText.Visible = _resScaleCombo.ActiveId == "-1";
|
||||||
_scalingFilter.Changed += (sender, args) => _scalingFilterSlider.Visible = _scalingFilter.ActiveId == "2";
|
_scalingFilter.Changed += (sender, args) => _scalingFilterSlider.Visible = _scalingFilter.ActiveId == "2";
|
||||||
_galThreading.Changed += (sender, args) =>
|
_galThreading.Changed += (sender, args) =>
|
||||||
|
@ -230,19 +232,6 @@ namespace Ryujinx.UI.Windows
|
||||||
_showConfirmExitToggle.Click();
|
_showConfirmExitToggle.Click();
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (ConfigurationState.Instance.HideCursor.Value)
|
|
||||||
{
|
|
||||||
case HideCursorMode.Never:
|
|
||||||
_hideCursorNever.Click();
|
|
||||||
break;
|
|
||||||
case HideCursorMode.OnIdle:
|
|
||||||
_hideCursorOnIdle.Click();
|
|
||||||
break;
|
|
||||||
case HideCursorMode.Always:
|
|
||||||
_hideCursorAlways.Click();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ConfigurationState.Instance.Graphics.EnableVsync)
|
if (ConfigurationState.Instance.Graphics.EnableVsync)
|
||||||
{
|
{
|
||||||
_vSyncToggle.Click();
|
_vSyncToggle.Click();
|
||||||
|
@ -349,6 +338,7 @@ namespace Ryujinx.UI.Windows
|
||||||
|
|
||||||
_systemTimeZoneCompletion.MatchFunc = TimeZoneMatchFunc;
|
_systemTimeZoneCompletion.MatchFunc = TimeZoneMatchFunc;
|
||||||
|
|
||||||
|
_hideCursorSelect.SetActiveId(ConfigurationState.Instance.HideCursor.Value.ToString());
|
||||||
_systemLanguageSelect.SetActiveId(ConfigurationState.Instance.System.Language.Value.ToString());
|
_systemLanguageSelect.SetActiveId(ConfigurationState.Instance.System.Language.Value.ToString());
|
||||||
_systemRegionSelect.SetActiveId(ConfigurationState.Instance.System.Region.Value.ToString());
|
_systemRegionSelect.SetActiveId(ConfigurationState.Instance.System.Region.Value.ToString());
|
||||||
_galThreading.SetActiveId(ConfigurationState.Instance.Graphics.BackendThreading.Value.ToString());
|
_galThreading.SetActiveId(ConfigurationState.Instance.Graphics.BackendThreading.Value.ToString());
|
||||||
|
@ -366,6 +356,8 @@ namespace Ryujinx.UI.Windows
|
||||||
_multiLanSelect.SetActiveId(ConfigurationState.Instance.Multiplayer.LanInterfaceId.Value);
|
_multiLanSelect.SetActiveId(ConfigurationState.Instance.Multiplayer.LanInterfaceId.Value);
|
||||||
_multiModeSelect.SetActiveId(ConfigurationState.Instance.Multiplayer.Mode.Value.ToString());
|
_multiModeSelect.SetActiveId(ConfigurationState.Instance.Multiplayer.Mode.Value.ToString());
|
||||||
|
|
||||||
|
_hideCursorIdleTimeBox.Visible = _hideCursorSelect.ActiveId == HideCursorMode.OnIdle.ToString();
|
||||||
|
_hideCursorIdleTimeSpin.Buffer.Text = ConfigurationState.Instance.HideCursorIdleTime.Value.ToString();
|
||||||
_custThemePath.Buffer.Text = ConfigurationState.Instance.UI.CustomThemePath;
|
_custThemePath.Buffer.Text = ConfigurationState.Instance.UI.CustomThemePath;
|
||||||
_resScaleText.Buffer.Text = ConfigurationState.Instance.Graphics.ResScaleCustom.Value.ToString();
|
_resScaleText.Buffer.Text = ConfigurationState.Instance.Graphics.ResScaleCustom.Value.ToString();
|
||||||
_scalingFilterLevel.Value = ConfigurationState.Instance.Graphics.ScalingFilterLevel.Value;
|
_scalingFilterLevel.Value = ConfigurationState.Instance.Graphics.ScalingFilterLevel.Value;
|
||||||
|
@ -573,18 +565,6 @@ namespace Ryujinx.UI.Windows
|
||||||
_directoryChanged = false;
|
_directoryChanged = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
HideCursorMode hideCursor = HideCursorMode.Never;
|
|
||||||
|
|
||||||
if (_hideCursorOnIdle.Active)
|
|
||||||
{
|
|
||||||
hideCursor = HideCursorMode.OnIdle;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_hideCursorAlways.Active)
|
|
||||||
{
|
|
||||||
hideCursor = HideCursorMode.Always;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!float.TryParse(_resScaleText.Buffer.Text, out float resScaleCustom) || resScaleCustom <= 0.0f)
|
if (!float.TryParse(_resScaleText.Buffer.Text, out float resScaleCustom) || resScaleCustom <= 0.0f)
|
||||||
{
|
{
|
||||||
resScaleCustom = 1.0f;
|
resScaleCustom = 1.0f;
|
||||||
|
@ -627,7 +607,8 @@ namespace Ryujinx.UI.Windows
|
||||||
ConfigurationState.Instance.EnableDiscordIntegration.Value = _discordToggle.Active;
|
ConfigurationState.Instance.EnableDiscordIntegration.Value = _discordToggle.Active;
|
||||||
ConfigurationState.Instance.CheckUpdatesOnStart.Value = _checkUpdatesToggle.Active;
|
ConfigurationState.Instance.CheckUpdatesOnStart.Value = _checkUpdatesToggle.Active;
|
||||||
ConfigurationState.Instance.ShowConfirmExit.Value = _showConfirmExitToggle.Active;
|
ConfigurationState.Instance.ShowConfirmExit.Value = _showConfirmExitToggle.Active;
|
||||||
ConfigurationState.Instance.HideCursor.Value = hideCursor;
|
ConfigurationState.Instance.HideCursor.Value = Enum.Parse<HideCursorMode>(_hideCursorSelect.ActiveId);
|
||||||
|
ConfigurationState.Instance.HideCursorIdleTime.Value = int.Parse(_hideCursorIdleTimeSpin.Buffer.Text);
|
||||||
ConfigurationState.Instance.Graphics.EnableVsync.Value = _vSyncToggle.Active;
|
ConfigurationState.Instance.Graphics.EnableVsync.Value = _vSyncToggle.Active;
|
||||||
ConfigurationState.Instance.Graphics.EnableShaderCache.Value = _shaderCacheToggle.Active;
|
ConfigurationState.Instance.Graphics.EnableShaderCache.Value = _shaderCacheToggle.Active;
|
||||||
ConfigurationState.Instance.Graphics.EnableTextureRecompression.Value = _textureRecompressionToggle.Active;
|
ConfigurationState.Instance.Graphics.EnableTextureRecompression.Value = _textureRecompressionToggle.Active;
|
||||||
|
|
Loading…
Reference in a new issue