Hide UI rework/arrow key fix (#2504)
* Unbreak arrow keys * Use bitshift for Flags instead of literal
This commit is contained in:
parent
5ceaf344ce
commit
46ffc81d90
7 changed files with 43 additions and 21 deletions
|
@ -4,5 +4,6 @@
|
|||
{
|
||||
public Key ToggleVsync { get; set; }
|
||||
public Key Screenshot { get; set; }
|
||||
public Key ShowUi { get; set; }
|
||||
}
|
||||
}
|
|
@ -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": [],
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace Ryujinx.Configuration
|
|||
/// <summary>
|
||||
/// The current version of the file format
|
||||
/// </summary>
|
||||
public const int CurrentVersion = 28;
|
||||
public const int CurrentVersion = 29;
|
||||
|
||||
public int Version { get; set; }
|
||||
|
||||
|
|
|
@ -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<InputConfig>
|
||||
{
|
||||
|
@ -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;
|
||||
|
|
|
@ -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 */)
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
<property name="can_focus">False</property>
|
||||
<property name="title" translatable="yes">Ryujinx</property>
|
||||
<property name="window_position">center</property>
|
||||
<signal name="key-release-event" handler="Focus_Menu_Bar" swapped="no" />
|
||||
<child>
|
||||
<object class="GtkBox" id="_box">
|
||||
<property name="visible">True</property>
|
||||
|
@ -15,7 +14,7 @@
|
|||
<child>
|
||||
<object class="GtkMenuBar" id="_menuBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="_fileMenu">
|
||||
<property name="visible">True</property>
|
||||
|
@ -343,7 +342,7 @@
|
|||
<object class="GtkMenuItem" id="_hideUi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Hide UI (Alt to show)</property>
|
||||
<property name="label" translatable="yes">Hide UI (SHOWUIKEY to show)</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="HideUi_Pressed" swapped="no" />
|
||||
</object>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue