diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyUtils.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyUtils.cs index 163db23b5c..2e71cce572 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyUtils.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyUtils.cs @@ -202,7 +202,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic () => client.Faction == factionId, () => orderManager.IssueOrder(Order.Command($"faction {client.Index} {factionId}"))); var faction = factions[factionId]; - item.Get("LABEL").GetText = () => faction.Name; + + var label = item.Get("LABEL"); + var labelText = WidgetUtils.TruncateText(faction.Name, label.Bounds.Width, Game.Renderer.Fonts[label.Font]); + label.GetText = () => labelText; + var flag = item.Get("FLAG"); flag.GetImageCollection = () => "flags"; flag.GetImageName = () => factionId; @@ -551,7 +555,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic public static void SetupFactionWidget(Widget parent, Session.Client c, Dictionary factions) { var factionName = parent.Get("FACTIONNAME"); - factionName.GetText = () => factions[c.Faction].Name; + var font = Game.Renderer.Fonts[factionName.Font]; + var truncated = new CachedTransform(clientFaction => + WidgetUtils.TruncateText(factions[clientFaction].Name, factionName.Bounds.Width, font)); + factionName.GetText = () => truncated.Update(c.Faction); + var factionFlag = parent.Get("FACTIONFLAG"); factionFlag.GetImageName = () => c.Faction; factionFlag.GetImageCollection = () => "flags";