diff --git a/ChatTwo/Configuration.cs b/ChatTwo/Configuration.cs index f60ac7a..b36ae12 100755 --- a/ChatTwo/Configuration.cs +++ b/ChatTwo/Configuration.cs @@ -45,7 +45,7 @@ internal class Configuration : IPluginConfiguration { public string GlobalFont = Fonts.GlobalFonts[0].Name; public string JapaneseFont = Fonts.JapaneseFonts[0].Item1; - public float TooltipOffset = 10f; + public float TooltipOffset; public float WindowAlpha = 100f; public Dictionary ChatColours = new(); public List Tabs = new(); diff --git a/ChatTwo/PayloadHandler.cs b/ChatTwo/PayloadHandler.cs index bc28cf1..41f68a8 100755 --- a/ChatTwo/PayloadHandler.cs +++ b/ChatTwo/PayloadHandler.cs @@ -239,10 +239,12 @@ public sealed class PayloadHandler { return; var atk = (AtkUnitBase*) args.Addon; - if (atk == null) + if (atk->WindowNode == null) return; - var atkSize = (X: atk->GetScaledWidth(true), Y: atk->GetScaledHeight(true)); + var component = atk->WindowNode->AtkResNode; + + var atkSize = (X: component.GetWidth() * component.ScaleX, Y: component.GetHeight() * component.GetScaleY()); var viewportSize = ImGuiHelpers.MainViewport.Size; var window = LogWindow.LastWindowPos + LogWindow.LastWindowSize; var isLeft = window.X < viewportSize.X / 2; @@ -251,6 +253,7 @@ public sealed class PayloadHandler { var x = isLeft ? window.X : LogWindow.LastWindowPos.X - atkSize.X; var y = Math.Clamp(window.Y - atkSize.Y, 0, float.MaxValue); y -= isTop ? 0 : LogWindow.Plugin.Config.TooltipOffset; // offset to prevent cut-off on the bottom + atk->SetPosition((short) x, (short) y); }