]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix TextLinkTag (#32203)
authorLeon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Thu, 3 Jul 2025 19:11:21 +0000 (07:11 +1200)
committerGitHub <noreply@github.com>
Thu, 3 Jul 2025 19:11:21 +0000 (21:11 +0200)
Content.Client/Guidebook/Richtext/KeyBindTag.cs
Content.Client/Guidebook/Richtext/ProtodataTag.cs
Content.Client/Guidebook/Richtext/TextLinkTag.cs

index 478f1b9bf610e131ffd6bafd5db32a61c9154d6a..ab74ddf1a0972ae004aa021bc2e06bc892f29730 100644 (file)
@@ -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!;
 
index a725fd4e4b5994c541794ae5e63c4618722da584..2a6eca4e485e6155dadc302800a260cf2ade7513 100644 (file)
@@ -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 <see cref="Shared.Guidebook.GuidebookDataAttribute"/>.
 /// </summary>
-public sealed class ProtodataTag : IMarkupTag
+public sealed class ProtodataTag : IMarkupTagHandler
 {
     [Dependency] private readonly ILogManager _logMan = default!;
     [Dependency] private readonly IEntityManager _entMan = default!;
index 27aaa71939a91acc3067c93bc45ff672fa43825d..a551b184734454e4c5ccc097b8e88d096bab6a65 100644 (file)
@@ -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;
-
     /// <inheritdoc/>
-    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<ILinkClickHandler>(out var handler))
+        if (control.TryGetParentHandler<ILinkClickHandler>(out var handler))
             handler.HandleClick(link);
         else
             Logger.Warning("Warning! No valid ILinkClickHandler found.");