From 5ab5337bbc08844be5cb0b7fae02e3b93317d252 Mon Sep 17 00:00:00 2001 From: Brues <5278969+brues-code@users.noreply.github.com> Date: Thu, 29 Oct 2026 10:33:55 -0500 Subject: [PATCH] Keep status bars true to their value on ClassicAPI 1.18.0 ClassicAPI 1.18.0 divides the UI scale out of an anchored frame's GetWidth/GetHeight, as 4.3.4 does. The status bar still divided it out itself, so under a UI scale below 1 the bar emptied early (at 29% health on a 0.71 scale). Only divide on older ClassicAPI. Fixes #71 --- api/ui-widgets.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/api/ui-widgets.lua b/api/ui-widgets.lua index 885026ca..f52c3188 100644 --- a/api/ui-widgets.lua +++ b/api/ui-widgets.lua @@ -6,6 +6,10 @@ do -- statusbars local stepsize, val local width, height, point + -- ClassicAPI before v1.18.0 leaves the UI scale in the size of an anchored + -- frame, so the bar has to divide it back out + local scaledsize = CLASSIC_API_VERSION < 11800 + local animate = CreateFrame("Frame", "pfStatusBarAnimation", UIParent) animate:SetScript("OnUpdate", function() stepsize = tonumber(pfUI_config.unitframes.animation_speed) @@ -33,7 +37,7 @@ do -- statusbars if self.mode == "vertical" then height = self:GetHeight() - height = height / self:GetEffectiveScale() + if scaledsize then height = height / self:GetEffectiveScale() end point = height / (self.max - self.min) * (val - self.min) -- keep values in limits @@ -51,7 +55,7 @@ do -- statusbars self.bg:SetPoint("BOTTOMRIGHT", self, "BOTTOMRIGHT", 0, point) else width = self:GetWidth() - width = width / self:GetEffectiveScale() + if scaledsize then width = width / self:GetEffectiveScale() end point = width / (self.max - self.min) * (val - self.min) -- keep values in limits