diff --git a/Scenes/UI/Remapping/ControlSettings.cs b/Scenes/UI/Remapping/ControlSettings.cs index e3b70dba..279ebba4 100644 --- a/Scenes/UI/Remapping/ControlSettings.cs +++ b/Scenes/UI/Remapping/ControlSettings.cs @@ -151,6 +151,7 @@ public override void _Process(double delta) { if (_remapPopup.Visible) _remapLabel.Text = ((int)_remapTimer.TimeLeft + 1).ToString(); + NoNullFocus(); } public void ResumeFocus() @@ -177,6 +178,14 @@ public void ReturnToPrev() QueueFree(); } + private void NoNullFocus() + { + var focusedNode = GetViewport().GuiGetFocusOwner(); + if (focusedNode != null) + return; + _remapTabs.GetTabBar().GrabFocus(); + } + #endregion /// diff --git a/Scenes/UI/Scripts/Inventory.cs b/Scenes/UI/Scripts/Inventory.cs index d41380ee..2c2bb84c 100644 --- a/Scenes/UI/Scripts/Inventory.cs +++ b/Scenes/UI/Scripts/Inventory.cs @@ -43,6 +43,11 @@ private void AddDisplayButtons(IDisplayable[] displayables, Node parentNode) } } + public override void _Process(double delta) + { + NoNullFocus(); + } + public override void _Input(InputEvent @event) { if (!GetWindow().HasFocus()) @@ -101,6 +106,15 @@ public void ReturnToPrev() QueueFree(); } + private void NoNullFocus() + { + var focusedNode = GetViewport().GuiGetFocusOwner(); + if (focusedNode != null) + return; + _tabs.GetTabBar().GrabFocus(); + ClearDescription(-1); + } + private void DoDescription(DisplayButton dispButton) { string itemName = dispButton.DisplayName.ToUpper();