diff --git a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs index 8afcb6d4d6..c4b0fe0051 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs @@ -108,9 +108,29 @@ namespace OpenRA.Mods.Common.Widgets.Logic panel.Get("COLORBLOCK").GetColor = () => Game.Settings.Player.Color.RGB; } + Action closeAssetBrowser = () => + { + if (isVideoLoaded) + player.Stop(); + Ui.CloseWindow(); + onExit(); + }; + filenameInput = panel.Get("FILENAME_INPUT"); + filenameInput.TakeKeyboardFocus(); filenameInput.OnTextEdited = () => ApplyFilter(filenameInput.Text); - filenameInput.OnEscKey = filenameInput.YieldKeyboardFocus; + filenameInput.OnEscKey = () => + { + if (filenameInput.Text.Length == 0) + closeAssetBrowser(); + else + { + filenameInput.Text = ""; + filenameInput.OnTextEdited(); + } + + return true; + }; var frameContainer = panel.GetOrNull("FRAME_SELECTOR"); if (frameContainer != null) @@ -218,13 +238,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic var closeButton = panel.GetOrNull("CLOSE_BUTTON"); if (closeButton != null) - closeButton.OnClick = () => - { - if (isVideoLoaded) - player.Stop(); - Ui.CloseWindow(); - onExit(); - }; + closeButton.OnClick = closeAssetBrowser; } void SelectNextFrame()