Hey all! Got an issue:
https://forums.elderscrollsonline.co...n-gamepad-mode
Just like in this thread on the forums, where if your addon is the first one to make a gamepad dialog then all further dialogs, like the one activity finder makes when your queue pops, are deemed insecure and gives you errors because of it.
Code:
/EsoUI/Ingame/PlayerToPlayer/PlayerToPlayer.lua:1464: Attempt to access a private function 'CancelTaskbarWindowFlash' from insecure code. The callstack became untrusted 3 stack frame(s) from the top.
stack traceback:
/EsoUI/Ingame/PlayerToPlayer/PlayerToPlayer.lua:1464: in function 'ZO_PlayerToPlayer:RemoveEntryFromIncomingQueueTable'
<Locals> self = [table:1]{lastFailedPromptTime = 4047797, hasResurrectPending = F, hasRequiredSoulGem = F, showingResponsePrompt = F, msToDelayToShowPrompt = 500, shouldShowNotificationKeybindLayer = F, isBeingResurrected = F, failedRaidRevives = F, resurrectable = F}, index = 1, incomingEntry = [table:2]{messageFormat = 7700, acceptText = "Ready", seen = T, expiresAtS = 4273.5825195312, pendingResponse = T, dialogTitle = "Activity Finder", incomingType = 13} </Locals>
/EsoUI/Ingame/PlayerToPlayer/PlayerToPlayer.lua:1406: in function 'ZO_PlayerToPlayer:Decline'
<Locals> self = [table:1], incomingEntry = [table:2], index = 1 </Locals>
/EsoUI/Ingame/Globals/InGameDialogs.lua:3590: in function 'buttonCallback'
<Locals> dialog = ud </Locals>
/EsoUI/Libraries/ZO_Dialog/Gamepad/ZO_GenericDialog_Gamepad.lua:25: in function 'callback'
<Locals> pressState = F </Locals>
/EsoUI/Libraries/ZO_KeybindStrip/ZO_KeybindStrip.lua:680: in function 'ZO_KeybindStrip:TryHandlingKeybindDown'
<Locals> self = [table:3]{batchUpdating = F, insertionId = 500, allowDefaultExit = T}, keybind = "DIALOG_NEGATIVE", buttonOrEtherealDescriptor = ud, keybindButtonDescriptor = [table:4]{onShowCooldown = 2000, sound = "Dialog_Decline", keybind = "DIALOG_NEGATIVE", alignment = 1}, enabled = T </Locals>
(tail call): ?
/EsoUI/Libraries/ZO_Dialog/ZO_Dialog.lua:1268: in function 'ZO_Dialogs_ButtonKeybindPressed'
<Locals> keybind = "DIALOG_NEGATIVE", dialog = ud, handledButton = F </Locals>
:1: in function '(main chunk)'
<Locals> keybind = "DIALOG_NEGATIVE" </Locals>
I'm working around it now by just showing normal keyboard dialogs instead and letting the native UI make and use its own, untainted gamepad flavored ones, but would anyone know any other way around this? Anyway to call some protected function beforehand to force the game to make its own dialog so my addon doesn't make it first maybe? As far as I know, ZO_Dialogs_ShowDialog isn't a protected function so I can't just use CallSecureProtected and have it all work, so I'm kinda stuck here lol