Add hide-cursor command line argument & always hide cursor option (#4613)

* Add hide-cursor command line argument

* gtk: Adjust SettingsWindow for hide cursor options

* ava: Adjust SettingsWindow for hide cursor options

* ava: Add override check for HideCursor arg

* Remove copy&paste sins

* ava: Leave a little more room between the options

* gtk: Fix hide cursor issues

* ava: Only hide cursor if it's within the embedded window
This commit is contained in:
TSRBerry 2023-05-02 03:29:47 +02:00 committed by GitHub
parent 2c94ac455e
commit dd574146fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 266 additions and 99 deletions

View file

@ -162,9 +162,9 @@ namespace Ryujinx.Ui.Common.Configuration
public bool ShowConfirmExit { get; set; }
/// <summary>
/// Hide Cursor on Idle
/// Whether to hide cursor on idle, always or never
/// </summary>
public bool HideCursorOnIdle { get; set; }
public HideCursorMode HideCursor { get; set; }
/// <summary>
/// Enables or disables Vertical Sync
@ -395,4 +395,4 @@ namespace Ryujinx.Ui.Common.Configuration
JsonHelper.SerializeToFile(path, this, ConfigurationFileFormatSettings.SerializerContext.ConfigurationFileFormat);
}
}
}
}

View file

@ -613,7 +613,7 @@ namespace Ryujinx.Ui.Common.Configuration
/// <summary>
/// Hide Cursor on Idle
/// </summary>
public ReactiveObject<bool> HideCursorOnIdle { get; private set; }
public ReactiveObject<HideCursorMode> HideCursor { get; private set; }
private ConfigurationState()
{
@ -626,7 +626,7 @@ namespace Ryujinx.Ui.Common.Configuration
EnableDiscordIntegration = new ReactiveObject<bool>();
CheckUpdatesOnStart = new ReactiveObject<bool>();
ShowConfirmExit = new ReactiveObject<bool>();
HideCursorOnIdle = new ReactiveObject<bool>();
HideCursor = new ReactiveObject<HideCursorMode>();
}
public ConfigurationFileFormat ToFileFormat()
@ -662,7 +662,7 @@ namespace Ryujinx.Ui.Common.Configuration
EnableDiscordIntegration = EnableDiscordIntegration,
CheckUpdatesOnStart = CheckUpdatesOnStart,
ShowConfirmExit = ShowConfirmExit,
HideCursorOnIdle = HideCursorOnIdle,
HideCursor = HideCursor,
EnableVsync = Graphics.EnableVsync,
EnableShaderCache = Graphics.EnableShaderCache,
EnableTextureRecompression = Graphics.EnableTextureRecompression,
@ -767,7 +767,7 @@ namespace Ryujinx.Ui.Common.Configuration
EnableDiscordIntegration.Value = true;
CheckUpdatesOnStart.Value = true;
ShowConfirmExit.Value = true;
HideCursorOnIdle.Value = false;
HideCursor.Value = Ryujinx.Common.Configuration.HideCursorMode.Never;
Graphics.EnableVsync.Value = true;
Graphics.EnableShaderCache.Value = true;
Graphics.EnableTextureRecompression.Value = false;
@ -1046,7 +1046,7 @@ namespace Ryujinx.Ui.Common.Configuration
{
Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 22.");
configurationFileFormat.HideCursorOnIdle = false;
configurationFileFormat.HideCursor = HideCursorMode.Never;
configurationFileUpdated = true;
}
@ -1427,7 +1427,7 @@ namespace Ryujinx.Ui.Common.Configuration
EnableDiscordIntegration.Value = configurationFileFormat.EnableDiscordIntegration;
CheckUpdatesOnStart.Value = configurationFileFormat.CheckUpdatesOnStart;
ShowConfirmExit.Value = configurationFileFormat.ShowConfirmExit;
HideCursorOnIdle.Value = configurationFileFormat.HideCursorOnIdle;
HideCursor.Value = configurationFileFormat.HideCursor;
Graphics.EnableVsync.Value = configurationFileFormat.EnableVsync;
Graphics.EnableShaderCache.Value = configurationFileFormat.EnableShaderCache;
Graphics.EnableTextureRecompression.Value = configurationFileFormat.EnableTextureRecompression;

View file

@ -9,6 +9,7 @@ namespace Ryujinx.Ui.Common.Helper
public static bool? OverrideDockedMode { get; private set; }
public static string OverrideGraphicsBackend { get; private set; }
public static string OverrideHideCursor { get; private set; }
public static string BaseDirPathArg { get; private set; }
public static string Profile { get; private set; }
public static string LaunchPathArg { get; private set; }
@ -76,6 +77,16 @@ namespace Ryujinx.Ui.Common.Helper
case "--handheld-mode":
OverrideDockedMode = false;
break;
case "--hide-cursor":
if (i + 1 >= args.Length)
{
Logger.Error?.Print(LogClass.Application, $"Invalid option '{arg}'");
continue;
}
OverrideHideCursor = args[++i];
break;
default:
LaunchPathArg = arg;
break;