diff --git a/!Compatibility/api/luaAPI.lua b/!Compatibility/api/luaAPI.lua index b2f0ea2..3dfbde2 100644 --- a/!Compatibility/api/luaAPI.lua +++ b/!Compatibility/api/luaAPI.lua @@ -10,7 +10,7 @@ local type = type local unpack = unpack local abs, ceil, exp, floor = math.abs, math.ceil, math.exp, math.floor local find, format, gfind, gsub, len, sub = string.find, string.format, string.gfind, string.gsub, string.len, string.sub -local concat, getn, setn = table.concat, table.getn, table.setn +local concat, tinsert, getn, setn = table.concat, table.insert, table.getn, table.setn math.fmod = math.mod math.huge = 1/0 @@ -32,14 +32,14 @@ function select(n, ...) end if n == "#" then - return getn(arg) + return arg.n elseif n == 1 then return unpack(arg) end local args = {} - for i = n, getn(arg) do + for i = n, arg.n do args[i-n+1] = arg[i] end @@ -182,7 +182,7 @@ function string.join(delimiter, ...) error(format("bad argument #1 to 'join' (string expected, got %s)", delimiter and type(delimiter) or "no value"), 2) end - if getn(arg) == 0 then + if arg.n == 0 then return "" end @@ -240,7 +240,7 @@ function string.split(delimiter, str) end local fields = {} - gsub(str, format("([^%s]+)", delimiter), function(c) fields[getn(fields) + 1] = c end) + gsub(str, format("([^%s]+)", delimiter), function(c) tinsert(fields, c) end) return unpack(fields) end @@ -339,7 +339,7 @@ wipe = table.wipe local LOCAL_ToStringAllTemp = {} function tostringall(...) - local n = getn(arg) + local n = arg.n -- Simple versions for common argument counts if (n == 1) then return tostring(arg[1]) diff --git a/ElvUI/Modules/Bags/Bags.lua b/ElvUI/Modules/Bags/Bags.lua index 6ade1cb..a038dcb 100644 --- a/ElvUI/Modules/Bags/Bags.lua +++ b/ElvUI/Modules/Bags/Bags.lua @@ -1182,7 +1182,7 @@ function B:Initialize() E:Point(BagFrameHolder, "BOTTOMRIGHT", RightChatPanel, "BOTTOMRIGHT", -(E.Border*2), 22 + E.Border*4 - E.Spacing*2) E:CreateMover(BagFrameHolder, "ElvUIBagMover", L["Bag Mover"], nil, nil, B.PostBagMove) - self:SecureHook("UpdateContainerFrameAnchors") + --self:SecureHook("UpdateContainerFrameAnchors") return end diff --git a/ElvUI/Modules/DataTexts/DataTexts.lua b/ElvUI/Modules/DataTexts/DataTexts.lua index 450068d..d13c4e0 100644 --- a/ElvUI/Modules/DataTexts/DataTexts.lua +++ b/ElvUI/Modules/DataTexts/DataTexts.lua @@ -17,7 +17,8 @@ function DT:Initialize() self.tooltip = CreateFrame("GameTooltip", "DatatextTooltip", E.UIParent, "GameTooltipTemplate") DatatextTooltipTextLeft1:SetFontObject(GameTooltipText) DatatextTooltipTextRight1:SetFontObject(GameTooltipText) - TT:HookScript(self.tooltip, "OnShow", "SetStyle") + TT:SetStyle(self.tooltip) + TT:HookScript(self.tooltip, "OnShow", "CheckBackdropColor") self:RegisterLDB() LDB.RegisterCallback(E, "LibDataBroker_DataObjectCreated", DT.SetupObjectLDB) diff --git a/ElvUI/Modules/Skins/Blizzard/Tooltip.lua b/ElvUI/Modules/Skins/Blizzard/Tooltip.lua index 76bc6cd..331fbeb 100644 --- a/ElvUI/Modules/Skins/Blizzard/Tooltip.lua +++ b/ElvUI/Modules/Skins/Blizzard/Tooltip.lua @@ -33,7 +33,8 @@ local function LoadSkin() WorldMapCompareTooltip3 } for _, tt in pairs(tooltips) do - TT:SecureHookScript(tt, "OnShow", "SetStyle") + TT:SetStyle(tt) + TT:SecureHookScript(tt, "OnShow", "CheckBackdropColor") end GameTooltipStatusBar:SetStatusBarTexture(E["media"].normTex) diff --git a/ElvUI/Modules/Tooltip/Tooltip.lua b/ElvUI/Modules/Tooltip/Tooltip.lua index 07de30f..cdb0cdd 100644 --- a/ElvUI/Modules/Tooltip/Tooltip.lua +++ b/ElvUI/Modules/Tooltip/Tooltip.lua @@ -93,9 +93,9 @@ function TT:GameTooltip_SetDefaultAnchor(tt, parent) end function TT:SetStyle(tt) - E:SetTemplate(this, "Transparent", nil, true) - local r, g, b = this:GetBackdropColor() - this:SetBackdropColor(r, g, b, self.db.colorAlpha) + E:SetTemplate(tt, "Transparent", nil, true) + local r, g, b = tt:GetBackdropColor() + tt:SetBackdropColor(r, g, b, self.db.colorAlpha) end function TT:RemoveTrashLines(tt) @@ -245,6 +245,22 @@ function TT:SetItemRef(link) end end +function TT:CheckBackdropColor() + if not this:IsShown() then return end + + local r, g, b = this:GetBackdropColor() + if r and g and b then + r = E:Round(r, 1) + g = E:Round(g, 1) + b = E:Round(b, 1) + local red, green, blue = unpack(E.media.backdropfadecolor) + if r ~= red or g ~= green or b ~= blue then + this:SetBackdropColor(red, green, blue, self.db.colorAlpha) + this:SetBackdropBorderColor(unpack(E.media.bordercolor)) + end + end +end + function TT:SetTooltipFonts() local font = E.LSM:Fetch("font", E.db.tooltip.font) local fontOutline = E.db.tooltip.fontOutline