fix: guard GrabFirstFocus on pointerless, unsub VisibilityChanged in _ExitTree

This commit is contained in:
2026-03-19 03:29:36 +01:00
parent 3b18e328b2
commit 0105698c33
3 changed files with 4 additions and 1 deletions

View File

@@ -36,6 +36,7 @@ public partial class AudioSettings : Control
{ {
if (InputDeviceManager.Instance != null) if (InputDeviceManager.Instance != null)
InputDeviceManager.Instance.DeviceChanged -= OnDeviceChanged; InputDeviceManager.Instance.DeviceChanged -= OnDeviceChanged;
AudioSettingsControl.VisibilityChanged -= OnVisibilityChanged;
SaveSettings(); SaveSettings();
} }

View File

@@ -40,7 +40,8 @@ public partial class MainMenu : Control
InputDeviceManager.Instance.DeviceChanged += OnDeviceChanged; InputDeviceManager.Instance.DeviceChanged += OnDeviceChanged;
VisibilityChanged += OnVisibilityChanged; VisibilityChanged += OnVisibilityChanged;
GrabFirstFocus(); if (InputDeviceManager.Instance?.IsPointerless == true)
GrabFirstFocus();
} }
public override void _ExitTree() public override void _ExitTree()

View File

@@ -39,6 +39,7 @@ public partial class PauseMenu : Control
{ {
if (InputDeviceManager.Instance != null) if (InputDeviceManager.Instance != null)
InputDeviceManager.Instance.DeviceChanged -= OnDeviceChanged; InputDeviceManager.Instance.DeviceChanged -= OnDeviceChanged;
PauseMenuControl.VisibilityChanged -= OnVisibilityChanged;
} }
private void OnVisibilityChanged() private void OnVisibilityChanged()