<Ui><Script><![CDATA[--[[

TaintLess [20-10-19]
https://www.townlong-yak.com/addons/taintless

All rights reserved.

Permission is hereby granted to distribute unmodified copies of this file.
]]

local function purgeKey(t, k)
	t[k] = nil
	local c = 42
	repeat
		if t[c] == nil then
			t[c] = nil
		end
		c = c + 1
	until issecurevariable(t, k)
end

-- https://www.townlong-yak.com/bugs/Mx7CWN-RefreshOverread
if (tonumber(UIDD_REFRESH_OVERREAD_PATCH_VERSION) or 0) < 3 then
	UIDD_REFRESH_OVERREAD_PATCH_VERSION = 3
	hooksecurefunc("UIDropDownMenu_InitializeHelper", function()
		if UIDD_REFRESH_OVERREAD_PATCH_VERSION ~= 3 then
			return
		end
		for i=1, UIDROPDOWNMENU_MAXLEVELS do
			for j=1+_G["DropDownList" .. i].numButtons, UIDROPDOWNMENU_MAXBUTTONS do
				local b, _ = _G["DropDownList" .. i .. "Button" .. j]
				_ = issecurevariable(b, "checked")      or purgeKey(b, "checked")
				_ = issecurevariable(b, "notCheckable") or purgeKey(b, "notCheckable")
			end
		end
	end)
end

-- https://www.townlong-yak.com/bugs/Kjq4hm-DisplayModeTaint
if (tonumber(UIDROPDOWNMENU_OPEN_PATCH_VERSION) or 0) < 1 then
	UIDROPDOWNMENU_OPEN_PATCH_VERSION = 1
	hooksecurefunc("UIDropDownMenu_InitializeHelper", function(frame)
		if UIDROPDOWNMENU_OPEN_PATCH_VERSION ~= 1 then
			return
		end
		if UIDROPDOWNMENU_OPEN_MENU and UIDROPDOWNMENU_OPEN_MENU ~= frame
		   and not issecurevariable(UIDROPDOWNMENU_OPEN_MENU, "displayMode") then
				purgeKey(_G, "UIDROPDOWNMENU_OPEN_MENU")
		end
	end)
end

-- https://www.townlong-yak.com/bugs/gXwH4P-IOFrameSelection
if (tonumber(IOFRAME_SELECTION_PATCH_VERSION) or 0) < 1 then
	IOFRAME_SELECTION_PATCH_VERSION = 1
	InterfaceOptionsFrame:HookScript("OnHide", function()
		if IOFRAME_SELECTION_PATCH_VERSION == 1 then
			InterfaceOptionsFrameCategories.selection = nil
		end
	end)
end

]]></Script></Ui>