diff --git a/osu.Game/Localisation/ChatStrings.cs b/osu.Game/Localisation/ChatStrings.cs
index 6b0a6bd8e1e7..6841e7d93893 100644
--- a/osu.Game/Localisation/ChatStrings.cs
+++ b/osu.Game/Localisation/ChatStrings.cs
@@ -24,6 +24,11 @@ public static class ChatStrings
///
public static LocalisableString MentionUser => new TranslatableString(getKey(@"mention_user"), @"Mention");
- private static string getKey(string key) => $"{prefix}:{key}";
+ ///
+ /// "press enter to chat..."
+ ///
+ public static LocalisableString InGameInputPlaceholder => new TranslatableString(getKey(@"in_game_input_placeholder"), @"press enter to chat...");
+
+ private static string getKey(string key) => $@"{prefix}:{key}";
}
}
diff --git a/osu.Game/Online/Chat/StandAloneChatDisplay.cs b/osu.Game/Online/Chat/StandAloneChatDisplay.cs
index 3a094cc074be..e100b5fe5b6a 100644
--- a/osu.Game/Online/Chat/StandAloneChatDisplay.cs
+++ b/osu.Game/Online/Chat/StandAloneChatDisplay.cs
@@ -128,6 +128,9 @@ private void channelChanged(ValueChangedEvent e)
public partial class ChatTextBox : HistoryTextBox
{
+ public Action Focus;
+ public Action FocusLost;
+
protected override bool OnKeyDown(KeyDownEvent e)
{
// Chat text boxes are generally used in places where they retain focus, but shouldn't block interaction with other
@@ -153,13 +156,17 @@ protected override void LoadComplete()
BackgroundFocused = new Color4(10, 10, 10, 255);
}
+ protected override void OnFocus(FocusEvent e)
+ {
+ base.OnFocus(e);
+ Focus?.Invoke();
+ }
+
protected override void OnFocusLost(FocusLostEvent e)
{
base.OnFocusLost(e);
FocusLost?.Invoke();
}
-
- public Action FocusLost;
}
public partial class StandAloneDrawableChannel : DrawableChannel
diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/GameplayChatDisplay.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/GameplayChatDisplay.cs
index d003110039f8..d1a73457e384 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/GameplayChatDisplay.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/GameplayChatDisplay.cs
@@ -10,6 +10,7 @@
using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
using osu.Game.Input.Bindings;
+using osu.Game.Localisation;
using osu.Game.Online.Rooms;
using osu.Game.Screens.OnlinePlay.Match.Components;
using osu.Game.Screens.Play;
@@ -41,7 +42,13 @@ public GameplayChatDisplay(Room room)
Background.Alpha = 0.2f;
- TextBox.FocusLost = () => expandedFromTextBoxFocus.Value = false;
+ TextBox.PlaceholderText = ChatStrings.InGameInputPlaceholder;
+ TextBox.Focus = () => TextBox.PlaceholderText = Resources.Localisation.Web.ChatStrings.InputPlaceholder;
+ TextBox.FocusLost = () =>
+ {
+ TextBox.PlaceholderText = ChatStrings.InGameInputPlaceholder;
+ expandedFromTextBoxFocus.Value = false;
+ };
}
protected override bool OnHover(HoverEvent e) => true; // use UI mouse cursor.