From 32f0ba340a809b8fed2c2408d840d70a969b9083 Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Fri, 4 Jul 2025 07:11:21 +1200 Subject: [PATCH] Fix TextLinkTag (#32203) --- Content.Client/Guidebook/Richtext/KeyBindTag.cs | 2 +- Content.Client/Guidebook/Richtext/ProtodataTag.cs | 2 +- Content.Client/Guidebook/Richtext/TextLinkTag.cs | 15 ++++++--------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Content.Client/Guidebook/Richtext/KeyBindTag.cs b/Content.Client/Guidebook/Richtext/KeyBindTag.cs index 478f1b9bf6..ab74ddf1a0 100644 --- a/Content.Client/Guidebook/Richtext/KeyBindTag.cs +++ b/Content.Client/Guidebook/Richtext/KeyBindTag.cs @@ -6,7 +6,7 @@ using Robust.Shared.Utility; namespace Content.Client.Guidebook.Richtext; [UsedImplicitly] -public sealed class KeyBindTag : IMarkupTag +public sealed class KeyBindTag : IMarkupTagHandler { [Dependency] private readonly IInputManager _inputManager = default!; diff --git a/Content.Client/Guidebook/Richtext/ProtodataTag.cs b/Content.Client/Guidebook/Richtext/ProtodataTag.cs index a725fd4e4b..2a6eca4e48 100644 --- a/Content.Client/Guidebook/Richtext/ProtodataTag.cs +++ b/Content.Client/Guidebook/Richtext/ProtodataTag.cs @@ -9,7 +9,7 @@ namespace Content.Client.Guidebook.RichText; /// In order to be accessed by this tag, the desired field/property must /// be tagged with . /// -public sealed class ProtodataTag : IMarkupTag +public sealed class ProtodataTag : IMarkupTagHandler { [Dependency] private readonly ILogManager _logMan = default!; [Dependency] private readonly IEntityManager _entMan = default!; diff --git a/Content.Client/Guidebook/Richtext/TextLinkTag.cs b/Content.Client/Guidebook/Richtext/TextLinkTag.cs index 27aaa71939..a551b18473 100644 --- a/Content.Client/Guidebook/Richtext/TextLinkTag.cs +++ b/Content.Client/Guidebook/Richtext/TextLinkTag.cs @@ -10,16 +10,14 @@ using Content.Client.UserInterface.ControlExtensions; namespace Content.Client.Guidebook.RichText; [UsedImplicitly] -public sealed class TextLinkTag : IMarkupTag +public sealed class TextLinkTag : IMarkupTagHandler { public static Color LinkColor => Color.CornflowerBlue; public string Name => "textlink"; - public Control? Control; - /// - public bool TryGetControl(MarkupNode node, [NotNullWhen(true)] out Control? control) + public bool TryCreateControl(MarkupNode node, [NotNullWhen(true)] out Control? control) { if (!node.Value.TryGetString(out var text) || !node.Attributes.TryGetValue("link", out var linkParameter) @@ -38,22 +36,21 @@ public sealed class TextLinkTag : IMarkupTag label.OnMouseEntered += _ => label.FontColorOverride = Color.LightSkyBlue; label.OnMouseExited += _ => label.FontColorOverride = Color.CornflowerBlue; - label.OnKeyBindDown += args => OnKeybindDown(args, link); + label.OnKeyBindDown += args => OnKeybindDown(args, link, label); control = label; - Control = label; return true; } - private void OnKeybindDown(GUIBoundKeyEventArgs args, string link) + private void OnKeybindDown(GUIBoundKeyEventArgs args, string link, Control? control) { if (args.Function != EngineKeyFunctions.UIClick) return; - if (Control == null) + if (control == null) return; - if (Control.TryGetParentHandler(out var handler)) + if (control.TryGetParentHandler(out var handler)) handler.HandleClick(link); else Logger.Warning("Warning! No valid ILinkClickHandler found."); -- 2.51.2