Compare commits

..

4 Commits

Author SHA1 Message Date
Bluewhale1337 7acad19ae8 docs: update changelog 2026-07-27 10:23:09 +02:00
Bluewhale1337 90222e012d docs: append Quest and LootRoll fixes to changelog 2026-07-27 10:20:56 +02:00
Bluewhale1337 175f0b6f0b fix: resolve nil QuestInfoRequiredMoneyText and ChatEdit_InsertLink crashes 2026-07-27 10:19:08 +02:00
Bluewhale1337 a1295449d2 fix(tooltip): resolve global ID nil crash across all Tooltip functions 2026-07-27 00:09:29 +02:00
4 changed files with 52 additions and 42 deletions
+5 -1
View File
@@ -111,7 +111,11 @@ local function LootClick(frame)
if IsControlKeyDown() then if IsControlKeyDown() then
DressUpItemLink(frame.link) DressUpItemLink(frame.link)
elseif IsShiftKeyDown() then elseif IsShiftKeyDown() then
ChatEdit_InsertLink(frame.link) if ChatEdit_InsertLink then
ChatEdit_InsertLink(frame.link)
elseif ChatFrameEditBox and ChatFrameEditBox:IsVisible() then
ChatFrameEditBox:Insert(frame.link)
end
end end
end end
+7 -4
View File
@@ -221,10 +221,13 @@ local function LoadSkin()
QuestRewardText:SetTextColor(unpack(textColor)) QuestRewardText:SetTextColor(unpack(textColor))
if GetQuestLogRequiredMoney() > 0 then if GetQuestLogRequiredMoney() > 0 then
if GetQuestLogRequiredMoney() > GetMoney() then local moneyText = QuestInfoRequiredMoneyText or QuestLogRequiredMoneyText
QuestInfoRequiredMoneyText:SetTextColor(0.6, 0.6, 0.6) if moneyText then
else if GetQuestLogRequiredMoney() > GetMoney() then
QuestInfoRequiredMoneyText:SetTextColor(1, 0.80, 0.10) moneyText:SetTextColor(0.6, 0.6, 0.6)
else
moneyText:SetTextColor(1, 0.80, 0.10)
end
end end
end end
+36 -36
View File
@@ -273,7 +273,7 @@ function TT:SetItemRef(link)
if find(link, "^item:") then if find(link, "^item:") then
if E.db.tooltip.spellID then if E.db.tooltip.spellID then
local id = tonumber(match(link, "(%d+)")) local id = tonumber(match(link, "(%d+)"))
ItemRefTooltip:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) ItemRefTooltip:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
end end
ItemRefTooltip:Show() ItemRefTooltip:Show()
@@ -312,8 +312,8 @@ function TT:SetAction(tt, buttonID)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -329,8 +329,8 @@ function TT:SetAuctionItem(tt, type, index)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -346,8 +346,8 @@ function TT:SetAuctionSellItem(tt)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -362,8 +362,8 @@ function TT:SetBagItem(tt, bag, slot)
local _, count = GetContainerItemInfo(bag, slot) local _, count = GetContainerItemInfo(bag, slot)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -382,8 +382,8 @@ function TT:SetCraftItem(tt, skill, slot)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -394,8 +394,8 @@ function TT:SetCraftSpell(tt, id)
local id = tonumber(match(link, "enchant:(%d+)")) local id = tonumber(match(link, "enchant:(%d+)"))
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -422,7 +422,7 @@ function TT:SetHyperlink(tt, link, count)
if tt:GetName() == "GameTooltip" then if tt:GetName() == "GameTooltip" then
if E.db.tooltip.spellID and id then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
end end
@@ -440,8 +440,8 @@ function TT:SetInboxItem(tt, index, attachmentIndex)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -463,8 +463,8 @@ function TT:SetInventoryItem(tt, unit, slot)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -479,8 +479,8 @@ function TT:SetLootItem(tt, slot)
local _, _, count = GetLootSlotInfo(slot) local _, _, count = GetLootSlotInfo(slot)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -495,8 +495,8 @@ function TT:SetLootRollItem(tt, rollID)
local _, _, count = GetLootRollItemInfo(rollID) local _, _, count = GetLootRollItemInfo(rollID)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -511,8 +511,8 @@ function TT:SetMerchantItem(tt, slot)
local _, _, _, count = GetMerchantItemInfo(slot) local _, _, _, count = GetMerchantItemInfo(slot)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -527,8 +527,8 @@ function TT:SetQuestItem(tt, type, slot)
local _, _, count = GetQuestItemInfo(type, slot) local _, _, count = GetQuestItemInfo(type, slot)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -543,8 +543,8 @@ function TT:SetQuestLogItem(tt, type, index)
local _, _, count = GetQuestLogRewardInfo(index) local _, _, count = GetQuestLogRewardInfo(index)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -560,8 +560,8 @@ function TT:SetSendMailItem(tt, index)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -577,8 +577,8 @@ function TT:SetTradePlayerItem(tt, index)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -599,8 +599,8 @@ function TT:SetTradeSkillItem(tt, skill, slot)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
@@ -616,8 +616,8 @@ function TT:SetTradeTargetItem(tt, index)
self:SetPrice(tt, id, count) self:SetPrice(tt, id, count)
end end
if E.db.tooltip.spellID then if E.db.tooltip.spellID and id then
tt:AddLine(format("|cFFCA3C3C%s|r %d", ID, id)) tt:AddLine(format("|cFFCA3C3C%s|r %d", (ID or "ID"), id))
end end
tt:Show() tt:Show()
end end
+4 -1
View File
@@ -3,9 +3,12 @@
# WoW ElvUI - Vanilla (1.12.1) # WoW ElvUI - Vanilla (1.12.1)
## :exclamation: *Does NOT work with Retail - [Classic (1.13)](https://git.tukui.org/elvui/elvui-classic)* ## :exclamation: *Does NOT work with Retail - [Classic (1.13)](https://git.tukui.org/elvui/elvui-classic)*
# This repository is actively being fixed and maintained by Bluewhale. # This repository is actively being fixed and maintained.
## Changelog ## Changelog
- **Fix:** Resolved `attempt to index global QuestInfoRequiredMoneyText` crash in Quest frame by adding Vanilla WoW fallback.
- **Fix:** Resolved `attempt to call global ChatEdit_InsertLink` crash in LootRoll frame by using `ChatFrameEditBox:Insert` fallback.
- **Fix:** Fixed global ID Lua 5.0 varargs crash across all Tooltip functions.
- **Fix:** Fixed a Lua 5.0 syntax error in `AceConfigDialog-3.0.lua` where the `#` length operator was used instead of `table.getn`, preventing ElvUI_Config from loading. - **Fix:** Fixed a Lua 5.0 syntax error in `AceConfigDialog-3.0.lua` where the `#` length operator was used instead of `table.getn`, preventing ElvUI_Config from loading.
- **Fix:** Fixed nil ID formatting crash in Tooltip's SetHyperlink. - **Fix:** Fixed nil ID formatting crash in Tooltip's SetHyperlink.
- **Fix:** Removed implicit `arg` table memory leaks in high-frequency oUF element updates by replacing varargs (`...`) with static parameters. - **Fix:** Removed implicit `arg` table memory leaks in high-frequency oUF element updates by replacing varargs (`...`) with static parameters.