From 4fcf73921f07b8784c567f642d31e4e37c8fae95 Mon Sep 17 00:00:00 2001 From: deniz1a Date: Fri, 24 Jul 2015 21:10:35 +0300 Subject: [PATCH] Improves filter text field in asset browser. Text field takes keyboard focus by default. Esc key resets filter or closes window if text field is empty. --- .../Widgets/Logic/AssetBrowserLogic.cs | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) 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()