
conflicts with ct_mod and bag tooltips
lucianahanan opened this issue · 5 comments
Please include as much of the following information as possible to help me fix the bug:
Brief Description of Bug
Please include a brief description of the bug, including what you were doing, and when it occurred.
- Let only enabled two addons: Auctionator and CTMod ( Core and Library ).
- Open bag and mouse over random items, gear or not ( probably the ones with prices already scanned by auctionator ).
- lua error everytime
PS: addons alone does not trigger the error, only when together
Loaded Addons
Auctionator
CT_Core
CT_Library
Include a list of addons you were running at the time this bug occurred.
Back Trace (LUA Error Output)
Message: Interface\FrameXML\ContainerFrame.lua:1372: Action[SetPoint] failed because[SetPoint would result in anchor family connection]: attempted from: GameTooltip:SetPoint.
Time: Mon Jul 8 09:16:32 2019
Count: 8
Stack: Interface\FrameXML\ContainerFrame.lua:1372: Action[SetPoint] failed because[SetPoint would result in anchor family connection]: attempted from: GameTooltip:SetPoint.
[C]: in function SetPoint' Interface\FrameXML\ContainerFrame.lua:1372: in function
ContainerFrameItemButton_CalculateItemTooltipAnchors'
Interface\FrameXML\ContainerFrame.lua:1414: in function `ContainerFrameItemButton_OnEnter'
[string ":OnEnter"]:1: in function <[string ":OnEnter"]:1>
Locals: (*temporary) = GameTooltip {
0 =
SetRecipeReagentItem = defined =[C]:-1
SetBuybackItem = defined =[C]:-1
shoppingTooltips =
}
SetMerchantItem = defined =[C]:-1
ItemTooltip = {
}
SetQuestLogItem = defined =[C]:-1
SetGuildBankItem = defined =[C]:-1
BottomOverlay = {
}
SetTradeTargetItem = defined =[C]:-1
SetTradePlayerItem = defined =[C]:-1
SetSendMailItem = defined =[C]:-1
SetHyperlink = defined =[C]:-1
updateTooltip = 0.081000
SetInventoryItem = defined =[C]:-1
SetInboxItem = defined =[C]:-1
comparing = false
SetLootRollItem = defined =[C]:-1
TopOverlay = {
}
SetAuctionSellItem = defined =[C]:-1
SetBagItem = defined =[C]:-1
needsReset = true
SetRecipeResultItem = defined =[C]:-1
SetLootItem = defined =[C]:-1
SetQuestItem = defined =[C]:-1
SetAuctionItem = defined =[C]:-1
}
(*temporary) = "BOTTOMRIGHT"
(*temporary) = ContainerFrame1Item15 {
timeSinceUpgradeCheck = 0
PostOnLoad = defined @interface\FrameXML\ItemButtonTemplate.lua:169
BattlepayItemTexture = {
}
IconOverlay = {
}
BagStaticTop = {
}
GetItemContextMatchResult = defined @interface\FrameXML\ContainerFrame.lua:1464
IconBorder = {
}
newitemglowAnim = {
}
icon = ContainerFrame1Item15IconTexture {
}
isExtended = false
UpdateTooltip = defined @interface\FrameXML\ContainerFrame.lua:1376
ExtendedOverlay = {
}
RegisterCallback = defined @interface\FrameXML\ItemButtonTemplate.lua:175
UnregisterCallback = defined @interface\FrameXML\ItemButtonTemplate.lua:182
UpdateItemContextMatching = defined @interface\FrameXML\ItemButtonTemplate.lua:211
NewItemTexture = {
}
SplitStack = defined @interface\FrameXML\ContainerFrame.lua:1100
BagStaticBottom = {
}
ItemContextOverlay = {
}
PostOnShow = defined @interface\FrameXML\ItemButtonTemplate.lua:189
flash = {
}
ExtendedSlot = {
}
ExtendedOverlay2 = {
}
hasItem = 1
JunkIcon = {
}
SetMatchesSearch = defined @interface\FrameXML\ItemButtonTemplate.lua:202
UpdateItemContextOverlay = defined @interface\FrameXML\ItemButtonTemplate.lua:222
matchesSearch = true
0 =
count = 1
itemContextChangedCallbackIsSet = true
itemContextMatchResult = 3
itemContextChangedCallback = defined @interface\FrameXML\ItemButtonTemplate.lua:170
readable = false
Count = ContainerFrame1Item15Count {
}
PostOnHide = defined @interface\FrameXML\ItemButtonTemplate.lua:198
flashAnim = {
}
GetMatchesSearch = defined @interface\FrameXML\ItemButtonTemplate.lua:207
UpgradeIcon = {
}
searchOverlay = ContainerFrame1Item15SearchOverlay {
}
}
(*temporary) = "TOPLEFT"
I will investigate from the CT side what could be causing the interference between the addons.
CTCore hooks _GetDefaultAnchor, and repositions GameTooltip to a custom anchor somewhere on the screen.
I notice LibItemUpgradeInfo creates its own custom tooltips and then triggers this same function... but in the process of doing so, it is probably triggering CTCore's hook and CTCore might not be checking that "self" is the actual GameTooltip. This is spreading taint to the game tooltip, resulting in the error above.
My guess is that I just need to make a small change to CTCore for compatibility with LibItemUpgradeInfo (and any other addon instantiating their own tooltips separate from GameTooltip). I'll give it a try tonight.
@DDCorkum I appreciate the thorough investigation! Please let me know if the error persists after your change; happy to look into this further on the Auctionator side.
I believe the problem was 100% with my own code in CTMod, and I already pushed a new version 8.2.0.4 with a correction.
In summary, this is what I did wrong:
hooksecurefunc(GameTooltip_GetDefaultAnchor, function() GameToolTip:DoStuff(); end);
And this is my correction:
hooksecurefunc(GameTooltip_GetDefaultAnchor, function(tooltip) tooltip:DoStuff(); end);
The error message was because I was tainting GameTooltip during the hook of non-default tooltips such as the one instantiated by LibItemUpgradeInfo.