From bce0d7ea0aebccf664c29f417e0db692672e0d94 Mon Sep 17 00:00:00 2001 From: Adrestie Date: Thu, 1 Oct 2026 11:06:26 +0200 Subject: [PATCH] =?UTF-8?q?ForeverUI=20:=20d=C3=A9placer=20la=20fen=C3=AAt?= =?UTF-8?q?re=20de=20m=C3=A9tier=20ne=20fait=20plus=20ramer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pendant le glisser, les onglets latéraux étaient replacés à chaque image avec leur strate, leur niveau, leur hauteur et leur affichage ; seuls ce qui change est désormais réappliqué (la position, pendant un glisser). Co-Authored-By: Claude Opus 5.5 --- data/addon/ForeverUI/ProfessionsBook.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/data/addon/ForeverUI/ProfessionsBook.lua b/data/addon/ForeverUI/ProfessionsBook.lua index 83d0ca3..09ee2c5 100644 --- a/data/addon/ForeverUI/ProfessionsBook.lua +++ b/data/addon/ForeverUI/ProfessionsBook.lua @@ -1040,10 +1040,14 @@ function PB.PlaceTabs() local e = resize(c, f:GetHeight() or 0) c:ClearAllPoints() c:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", right, top) - c:SetHeight(-TAB.y + (c.count + 1) * (TAB.side - TAB.gap) * e) - c:SetFrameStrata(f:GetFrameStrata()) - c:SetFrameLevel(f:GetFrameLevel() + 1) - c:Show() + -- this runs every frame during a drag, where only the position moves: height, strata, + -- level and visibility are set only when they change + local height = -TAB.y + (c.count + 1) * (TAB.side - TAB.gap) * e + if math.abs((c:GetHeight() or 0) - height) > 0.01 then c:SetHeight(height) end + local strata, level = f:GetFrameStrata(), f:GetFrameLevel() + 1 + if c:GetFrameStrata() ~= strata then c:SetFrameStrata(strata) end + if c:GetFrameLevel() ~= level then c:SetFrameLevel(level) end + if not c:IsShown() then c:Show() end end -- RefreshRightTabs and RightTabSelected. Out of combat only (secure buttons).