Dominos

Dominos

19M Downloads

9.1.5 possible conflict

Talimar opened this issue ยท 10 comments

commented

Getting this error in combat. Not sure if it's Dominos but thought I'd report it anyway.

1x [ADDON_ACTION_BLOCKED] AddOn '*** ForceTaint_Strong ***' tried to call the protected function 'MultiBarBottomRightButton4:Show()'.
[string "@!BugGrabber\BugGrabber.lua"]:519: in function <!BugGrabber\BugGrabber.lua:519>
[string "=[C]"]: in function Show' [string "@FrameXML\ActionButton.lua"]:348: in function <FrameXML\ActionButton.lua:332> [string "=[C]"]: in function Update'
[string "@FrameXML\ActionButton.lua"]:854: in function `OnEvent'
[string "@FrameXML\ActionButton.lua"]:265: in function <FrameXML\ActionButton.lua:257>

commented

Without much context, its hard to actually diagnose these.

commented

Without much context, its hard to actually diagnose these.

It seems to happen the first time I engage in combat after logging in. after that it never occurs again.
I can test more if you have any ideas.

commented

Implementing the follow code in my UI seems to eliminate the error:

VehicleLeaveButton.NewShow = VehicleLeaveButton.Show VehicleLeaveButton.NewHide = VehicleLeaveButton.Hide MainMenuBar.NewSetScale = MainMenuBar.SetScale MainMenuBar.NewClearAllPointse = MainMenuBar.ClearAllPoints MainMenuBar.NewSetPoint = MainMenuBar.SetPoint MultiBarRight.NewSetShown = MultiBarRight.SetShown VehicleLeaveButton.Show = function() end MainMenuBar.SetScale = function() end MainMenuBar.ClearAllPoints = function() end MultiBarRight.SetShown = function() end MainMenuBar.SetPoint = function() end VehicleLeaveButton.Hide = function() end

Not the cleanest solution, but i think the bug arises from anything addon that touches a frame that is managed by the function "UIParent_ManageFramePositions" , located at Interface\FrameXML\UIParent.lua line 3474

commented

Upon further investigation, any addon that touches a frame that the Default UI wants to relocate, must set that frame as user placed. the following seems to clear up the bug for me:

`
local taintItems = {
"MainMenuBar",
"PlayerPowerBarAlt",
"VehicleLeaveButton",
"MultiBarRight",
"MicroButtonAndBagsBar",
"ObjectiveTrackerFrame",
}
for i, taintItem in pairs(taintItems) do
local item = _G[taintItem]
if item then
item:SetMovable(true)
item:SetUserPlaced(true)
end
end

for i = 1, 12 do
	local btn = _G["ActionButton"..i]
	if btn then
		btn:SetMovable(true)
		btn:SetUserPlaced(true)
	end
end

`

commented

You may want to see what your UI looks like when running that without Dominos enabled. I have a feeling you'll see stuff in weird places. SetUserPlaced tells the UI to save the positions of elements.

To resolve that, we'll want to add a logout event to revert what we've done (just thing:SetUserPlaced(false))

commented

The core issue for this bug arises when any addon modifies a frame that is managed in file "Interface\FrameXML\UIParent.lua" line 3155; function FramePositionDelegate:UIParentManageFramePositions() or frames listed in the same file, in the table located at line 2517. However, these functions include checks for element:IsUserPlaced(). Which is why I think it will be necessary do do as you suggest.

commented
local userPlaced,isUserPlaced = {}, {}

local function RegisterForUserPlaced(frameName)
	tinsert(userPlaced, frameName)
end

RegisterForUserPlaced("MainMenuBar")
RegisterForUserPlaced("PlayerPowerBarAlt")
RegisterForUserPlaced("MainMenuBarVehicleLeaveButton")
RegisterForUserPlaced("MultiBarRight")
RegisterForUserPlaced("MicroButtonAndBagsBar")
RegisterForUserPlaced("ObjectiveTrackerFrame")
RegisterForUserPlaced("TalkingHeadFrame")

local function RegisterUserPlaced(frameName)
	local element = _G[frameName]
	if element then
		isUserPlaced[frameName] = element
		element:SetMovable(true)
		element:SetUserPlaced(true)
	end
end

local function OnLogout()
	for frameName, element in pairs(isUserPlaced) do
		element:SetUserPlaced(false)
		element:SetMovable(false)
	end 
end

local function OnLogin()
	for i, frameName in pairs(userPlaced) do
		RegisterUserPlaced(frameName)
	end

	for i = 1, 12 do
		RegisterUserPlaced("ActionButton"..i)
	end
end
commented

It may be sufficient to just set MainMenuBar and MicroButtonAndBagsBar

commented

the latest update caused to mod not to work.

when I clicked a spell off an action bar the sound mutes the spell doesnt cast and I have to click someplace on the screen to get the sound working again

commented

I encounter this bug regularly, across several addons. I'm beginning to wonder if this could somehow be a GameTooltip leak? I can never seem to figure what causes this taint leak, but I do know that GameTooltip touches nearly everything...