From c8f9292babd5aa6021ce1bd6a977130baebb7de3 Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Tue, 16 Aug 2022 16:32:37 +0000 Subject: Avalonia - Couple fixes and improvements to vulkan (#3483) * drop split devices, rebase * add fallback to opengl if vulkan is not available * addressed review * ensure present image references are incremented and decremented when necessary * allow changing vsync for vulkan * fix screenshot on avalonia vulkan * save favorite when toggled * improve sync between popups * use separate devices for each new window * fix crash when closing window * addressed review * don't create the main window with immediate mode * change skia vk delegate to method * update vulkan throwonerror * addressed review --- Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs') diff --git a/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs b/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs index cd756d68..98516159 100644 --- a/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs +++ b/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs @@ -38,6 +38,8 @@ namespace Ryujinx.Ava.Ui.ViewModels { internal class MainWindowViewModel : BaseModel { + private const int HotKeyPressDelayMs = 500; + private readonly MainWindow _owner; private ObservableCollection _applications; private string _aspectStatusText; @@ -54,6 +56,7 @@ namespace Ryujinx.Ava.Ui.ViewModels private bool _isLoading; private int _progressMaximum; private int _progressValue; + private long _lastFullscreenToggle = Environment.TickCount64; private bool _showLoadProgress; private bool _showMenuAndStatusBar = true; private bool _showStatusSeparator; @@ -929,6 +932,13 @@ namespace Ryujinx.Ava.Ui.ViewModels public void ToggleFullscreen() { + if (Environment.TickCount64 - _lastFullscreenToggle < HotKeyPressDelayMs) + { + return; + } + + _lastFullscreenToggle = Environment.TickCount64; + WindowState state = _owner.WindowState; if (state == WindowState.FullScreen) @@ -1085,6 +1095,11 @@ namespace Ryujinx.Ava.Ui.ViewModels { selection.Favorite = !selection.Favorite; + _owner.ApplicationLibrary.LoadAndSaveMetaData(selection.TitleId, appMetadata => + { + appMetadata.Favorite = selection.Favorite; + }); + RefreshView(); } } -- cgit v1.2.3