diff --git a/Globals/StageProducer.cs b/Globals/StageProducer.cs index 7aada393..dd3a017a 100644 --- a/Globals/StageProducer.cs +++ b/Globals/StageProducer.cs @@ -212,4 +212,16 @@ private BattleConfig MakeBattleConfig(Stages nextRoom, int nextRoomIdx) CurRoom = nextRoomIdx; return result; } + + //Putting this here in an autoload. + public override void _Input(InputEvent @event) + { + //Consume controller input, if window out of focus. + //This handles ui_input, other scenes need to consume their own. + if (!GetWindow().HasFocus()) + { + GetViewport().SetInputAsHandled(); + return; + } + } } diff --git a/Scenes/BattleDirector/Scripts/BattleDirector.cs b/Scenes/BattleDirector/Scripts/BattleDirector.cs index 88ab9e13..d62c13f6 100644 --- a/Scenes/BattleDirector/Scripts/BattleDirector.cs +++ b/Scenes/BattleDirector/Scripts/BattleDirector.cs @@ -257,7 +257,7 @@ private void OnBattleLost() Audio.StreamPaused = true; SaveSystem.ClearSave(); AddChild(GD.Load(EndScreen.LoadPath).Instantiate()); - GetTree().Paused = true; + ProcessMode = ProcessModeEnum.Disabled; } private void ShowRewardSelection(int amount) diff --git a/Scenes/Maps/Scripts/Cartographer.cs b/Scenes/Maps/Scripts/Cartographer.cs index 030485e4..ae82b875 100644 --- a/Scenes/Maps/Scripts/Cartographer.cs +++ b/Scenes/Maps/Scripts/Cartographer.cs @@ -144,6 +144,6 @@ private void WinStage() EndScreen es = GD.Load(EndScreen.LoadPath).Instantiate(); AddChild(es); es.TopLabel.Text = Tr("BATTLE_ROOM_WIN"); - GetTree().Paused = true; + ProcessMode = ProcessModeEnum.Disabled; } } diff --git a/Scenes/UI/EndScreen.tscn b/Scenes/UI/EndScreen.tscn index 75dc3acf..040778e1 100644 --- a/Scenes/UI/EndScreen.tscn +++ b/Scenes/UI/EndScreen.tscn @@ -6,7 +6,7 @@ [ext_resource type="Theme" uid="uid://d37e3tpsbxwak" path="res://Scenes/UI/Assets/GeneralTheme.tres" id="4_1vt77"] [node name="CanvasLayer" type="CanvasLayer" node_paths=PackedStringArray("_buttons", "TopLabel")] -process_mode = 2 +process_mode = 3 script = ExtResource("1_37m3y") _buttons = [NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer/Restart"), NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer2/Title"), NodePath("MarginContainer2/MarginContainer/VBoxContainer/MarginContainer3/Quit")] TopLabel = NodePath("MarginContainer2/MarginContainer/VBoxContainer/TopLabel") diff --git a/Scenes/UI/Options/Scripts/HowToPlay.cs b/Scenes/UI/Options/Scripts/HowToPlay.cs index c3d49285..cc49e553 100644 --- a/Scenes/UI/Options/Scripts/HowToPlay.cs +++ b/Scenes/UI/Options/Scripts/HowToPlay.cs @@ -41,6 +41,11 @@ public void ReturnToPrev() public override void _Input(InputEvent @event) { + if (!GetWindow().HasFocus()) + { + GetViewport().SetInputAsHandled(); + return; + } if (@event.IsActionPressed("ui_cancel")) { ReturnToPrev(); diff --git a/Scenes/UI/Options/Scripts/OptionsMenu.cs b/Scenes/UI/Options/Scripts/OptionsMenu.cs index ee8bbc29..22eeb316 100644 --- a/Scenes/UI/Options/Scripts/OptionsMenu.cs +++ b/Scenes/UI/Options/Scripts/OptionsMenu.cs @@ -50,6 +50,11 @@ public override void _Ready() public override void _Input(InputEvent @event) { + if (!GetWindow().HasFocus()) + { + GetViewport().SetInputAsHandled(); + return; + } if (@event.IsActionPressed("ui_cancel")) { ReturnToPrev(); diff --git a/Scenes/UI/Remapping/ControlSettings.cs b/Scenes/UI/Remapping/ControlSettings.cs index 972c2657..e5cb8c31 100644 --- a/Scenes/UI/Remapping/ControlSettings.cs +++ b/Scenes/UI/Remapping/ControlSettings.cs @@ -131,11 +131,19 @@ private void GetCurrentSelection() OnControllerButtonPressed(); GetNode