But that's why they do it that way (I believe). If you did change factions, it would be marked as completed automatically. It helps Blizzard. So this is something addon authors will have to take into consideration: for quests that are both horde and alliance, they both get marked as completed if you do them. And vice-versa: if an addon wants to tell a player which quests (s)he hasn't done, it needs to be filtered by faction.
MouseIsOver has been converted to a C function for increased efficiency (e.g. /dump PlayerFrame:IsMouseOver() ).
When an addon file is loaded, the addon name and an addon table are passed to the file through . The same addon table is passed to every file loaded by a particular TOC file (example at the top of a Lua file: local addonName, addonTable = ;.
motionScriptsWhileDisabled attribute added to buttons. This allows OnEnter; and OnLeave; to fire while the button is disabled.
GetFileHeight() and GetFileWidth() added to Texture objects. 0 is returned if no texture file is associated with the texture.
You can now query for a list of completed quests with QueryQuestsCompleted() then wait for the QUEST_QUERY_COMPLETE event, and call GetQuestsCompleted(<luatable>).