From 22202be3946b5cb65511059e717af449168812f3 Mon Sep 17 00:00:00 2001 From: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Date: Sun, 14 May 2023 16:34:31 +0200 Subject: [GUI] Fix always hide cursor mode not hiding the cursor until it was moved (#4927) * gtk: Add missing isMouseInClient check for hide-cursor * ava: Add missing events and default isCursorInRenderer to true This is necessary because we don't receive a initial PointerEnter event for some reason. --- src/Ryujinx.Ava/AppHost.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/Ryujinx.Ava') diff --git a/src/Ryujinx.Ava/AppHost.cs b/src/Ryujinx.Ava/AppHost.cs index 795c3f7a..f3e90ef1 100644 --- a/src/Ryujinx.Ava/AppHost.cs +++ b/src/Ryujinx.Ava/AppHost.cs @@ -86,7 +86,7 @@ namespace Ryujinx.Ava private KeyboardHotkeyState _prevHotkeyState; private long _lastCursorMoveTime; - private bool _isCursorInRenderer; + private bool _isCursorInRenderer = true; private bool _isStopped; private bool _isActive; @@ -160,7 +160,9 @@ namespace Ryujinx.Ava ConfigurationState.Instance.HideCursor.Event += HideCursorState_Changed; - _topLevel.PointerMoved += TopLevel_PointerMoved; + _topLevel.PointerMoved += TopLevel_PointerEnterOrMoved; + _topLevel.PointerEnter += TopLevel_PointerEnterOrMoved; + _topLevel.PointerLeave += TopLevel_PointerLeave; if (OperatingSystem.IsWindows()) { @@ -183,7 +185,7 @@ namespace Ryujinx.Ava _gpuCancellationTokenSource = new CancellationTokenSource(); } - private void TopLevel_PointerMoved(object sender, PointerEventArgs e) + private void TopLevel_PointerEnterOrMoved(object sender, PointerEventArgs e) { if (sender is MainWindow window) { @@ -201,6 +203,12 @@ namespace Ryujinx.Ava } } } + + private void TopLevel_PointerLeave(object sender, PointerEventArgs e) + { + _isCursorInRenderer = false; + } + private void UpdateScalingFilterLevel(object sender, ReactiveEventArgs e) { _renderer.Window?.SetScalingFilter((Graphics.GAL.ScalingFilter)ConfigurationState.Instance.Graphics.ScalingFilter.Value); @@ -446,7 +454,9 @@ namespace Ryujinx.Ava ConfigurationState.Instance.Graphics.ScalingFilterLevel.Event -= UpdateScalingFilterLevel; ConfigurationState.Instance.Graphics.AntiAliasing.Event -= UpdateAntiAliasing; - _topLevel.PointerMoved -= TopLevel_PointerMoved; + _topLevel.PointerMoved -= TopLevel_PointerEnterOrMoved; + _topLevel.PointerEnter -= TopLevel_PointerEnterOrMoved; + _topLevel.PointerLeave -= TopLevel_PointerLeave; _gpuCancellationTokenSource.Cancel(); _gpuCancellationTokenSource.Dispose(); -- cgit v1.2.3