frozn / TipTac

WoW AddOn TipTac Reborn
GNU General Public License v3.0
108 stars 20 forks source link

Errors popping up - while moving mouse and equipping items quickly #221

Closed wazerstar closed 1 year ago

wazerstar commented 1 year ago

Describe the bug Moving mouse around in bag and equipping items quickly as shown in video will trigger this.

To Reproduce Bagnon addon Deja classic addon Tiptac reborn addon bis-tooltip addon

Expected behavior A clear and concise description of what you expected to happen.

Screenshots / VIDEO https://streamable.com/58r4x4

TipTac Reborn (please complete the following information): 23.03.27

WoW (please complete the following information): Wotlk Classic 3.4.1, 1.14.3

wazerstar commented 1 year ago
1x FrameXML/ContainerFrame_Shared.lua:1327: Action[SetPoint] failed because[SetPoint would result in anchor family connection]: attempted from: GameTooltip:SetPoint.
[string "=[C]"]: in function `SetPoint'
[string "@FrameXML/ContainerFrame_Shared.lua"]:1327: in function `ContainerFrameItemButton_CalculateItemTooltipAnchors'
[string "@FrameXML/ContainerFrame_Shared.lua"]:1373: in function <FrameXML/ContainerFrame_Shared.lua:1333>
[string "=[C]"]: in function `ContainerFrameItemButton_OnEnter'
[string "@BagBrother/addons/core/classes/item.lua"]:359: in function `ShowTooltip'
[string "@BagBrother/addons/core/classes/item.lua"]:186: in function <...rfaceBagBrother/addons/core/classes/item.lua:182>

Locals:
(*temporary) = GameTooltip {
 0 = <userdata>
 SetQuestLogRewardSpell = <function> defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:402
 OnBackdropLoaded = <function> defined @SharedXML/Backdrop.lua:152
 GetBackdropColor = <function> defined @SharedXML/Backdrop.lua:390
 SetHyperlink = <function> defined =[C]:-1
 SetTradeSkillItem = <function> defined =[C]:-1
 RightEdge = Texture {
 }
 SetSocketGem = <function> defined =[C]:-1
 ClearBackdrop = <function> defined =[C]:-1
 Show = <function> defined =[C]:-1
 SetPetAction = <function> defined =[C]:-1
 SetLootItem = <function> defined =[C]:-1
 FadeOut = <function> defined =[C]:-1
 numMoneyFrames = 4
 PixelSnapDisabled = true
 SetBuybackItem = <function> defined =[C]:-1
 SetMerchantItem = <function> defined =[C]:-1
 SetupTextureCoordinates = <function> defined @SharedXML/Backdrop.lua:214
 BottomOverlay = Texture {
 }
 SetTalent = <function> defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:402
 ttIcon = Texture {
 }
 GetEdgeSize = <function> defined @SharedXML/Backdrop.lua:188
 updateTooltip = 0.094000
 SetInventoryItem = <function> defined =[C]:-1
 TopEdge = Texture {
 }
 ttCount = FontString {
 }
 TooltipBackdropOnLoad = <function> defined @SharedXML/SharedTooltipTemplates.lua:172
 SetAuctionSellItem = <function> defined =[C]:-1
 SetBagItem = <function> defined =[C]:-1
 SetAction = <function> defined =[C]:-1
 SetBackdropColor = <function> defined =[C]:-1
 LeftEdge = Texture {
 }
 SetAuctionItem = <function> defined =[C]:-1
 ttSetIconTextureAndText = <function> defined @TipTacItemRef/ttItemRef.lua:205
 SetSpellBookItem = <function> defined =[C]:-1
 LibExtraTipRight = <table> {
 }
 backdropInfo = <table> {
 }
 SetCurrencyToken = <function> defined =[C]:-1
 SetShapeshift = <function> defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:402
 hasMoney = 1
 SetBackdropBorderColor = <function> defined =[C]:-1
 comparing = false
 SetCraftItem = <function> defined =[C]:-1
 SetQuestRewardSpell = <function> defined @Bistooltip/lib/LibExtraTip/LibExtraTip.lua:402
 NineSlice = Frame {
 }
 ApplyBackdrop = <function> defined =[C]:-1
 SetBackdrop = <function> defined =[C]:-1
 SetUnit = <function> defined =[C]:-1
 TopOverlay = Texture {
 }
 GetBackdropBorderColor = <function> defined @SharedXML/Backdrop.lua:409
 GetBackdrop = <function> defined @SharedXML/Backdrop.lua:347
 SetUnitDebuff = <function> defined =[C]:-1
 SetItemByID = <function> defined =[C]:-1
 Center = Texture {
 }
 SetQuestItem = <function> defined =[C]:-1
 BottomEdge = Texture {
 }
 SetBorderBlendMode = <function> defined @SharedXML/Backdrop.lua:266
 SetTrainerService = <function> defined =[C]:-1
 BottomRightCorner = Texture {
 }
 BottomLeftCorner = Texture {
 }
 TopRightCorner = Texture {
 }
 SetInboxItem = <function> defined =[C]:-1
 shoppingTooltips = <table> {
 }
 TopLeftCorner = Texture {
 }
 LibExtraTipLeft = <table> {
 }
 SetQuestLogItem = <function> defined =[C]:-1
 OnBackdropSizeChanged = <function> defined @SharedXML/Backdrop.lua:182
 SetTradeTargetItem = <function> defined =[C]:-1
 SetBackpackToken = <function> defined =[C]:-1
 SetTradePlayerItem = <function> defined =[C]:-1
 SetExistingSocketGem = <function> defined =[C]:-1
 SetSendMailItem = <function> defined =[C]:-1
 SetMerchantCostItem = <function> defined =[C]:-1
 StatusBar = GameTooltipStatusBar {
 }
 __hasCounters = true
 SetLootRollItem = <function> defined =[C]:-1
 SetGuildBankItem = <function> defined =[C]:-1
 SetUnitAura = <function> defined =[C]:-1
 SetQuestCurrency = <function> defined =[C]:-1
 SetCurrencyTokenByID = <function> defined =[C]:-1
 HasBackdropInfo = <function> defined @SharedXML/Backdrop.lua:278
 needsReset = false
 SetupPieceVisuals = <function> defined @SharedXML/Backdrop.lua:246
 SetSpellByID = <function> defined =[C]:-1
 SetQuestLogCurrency = <function> defined =[C]:-1
 SetUnitBuff = <function> defined =[C]:-1
}
(*temporary) = "BOTTOMRIGHT"
frozn commented 1 year ago

Thanks for reporting this! 👍

This was a tricky one. The tooltip's anchor for items is modified in blizzards function ContainerFrameItemButton_CalculateItemTooltipAnchors() (also mentioned here). Because of the missing tooltip:ClearAllPoints() there the error message you posted will pop up if the tooltip is custom-anchored (e.g. from TipTac).

But the thing is: TipTac only reanchors a tooltip if it is anchored to wow's "default anchor" (typically bottom right of screen). But the item tooltip is anchored to the slot in the bag and I was curious about why it has been reanchored by TipTac in this case.

The reason for this has been hidden action buttons (e.g. for pet actions) which set a default anchor for the GameTooltip but doesn't pop the tooltip up (understandable). After setting the default anchor by hovering over a hidden action button TipTac reanchors the still invisible tooltip. If you move the mouse cursor further to an item in the bag, the additional reanchoring in blizzards function ContainerFrameItemButton_CalculateItemTooltipAnchors() crashes with the mentioned error message.

To sum it all up: I could fix this on TipTac's side to recognize this behaviour and it works fine on my side now. The fix will be included in the next release.