When a spell is overridden by another, our cooldown bar stops being able to track it. Normally this is fine if the spell completely changes as you probably don't expect a cd bar for Backstab to track Gloomblade.
But when the overridden spell shares the same name as the base spell, such as Fire Breath for Evokers with the Font of Magic talent, you very much would expect the bar to track both.
With this fix, tracking the base spell will show the cd for the overridden version as well.
GetSpellCooldown used to return 1 for "has duration", but the new native version returns true. Fun.
Additionally, it looks like the events triggering UpdateCustomBarEvent() are passing a nil argument that the mod thought was supposed to be the affected unit. So I also fixed that, though I don't know if that's an 11.x thing or not.
https://www.wowace.com/projects/ice-hud/issues/363
Apparently we don't have to do any of this anymore (and might not have had to do it for a long time, but I missed the memo) so if we can, just use the built-in menuing stuff. Setting focus doesn't trigger taint with this.
This removes the menu replacement code that is preventing errors when trying to focus someone or dismiss a pet through a right-click menu on an addon. There is a new API, UnitPopup_OpenMenu, that is a replacement for ShowMenu, but it's not a drop-in replacement, so until I have access to the beta or an 11.0.2 PTR there's not much I can do here.
I don't have beta access so I can't test this yet, but this should catch everything in the Deprecated_11_0_0 file in wow's official ui source as well as some stuff not mentioned but reported by users.
Specifically the Algarian Stormrider which has a different flavor of Vigor widget with customized colors. Apparently that's a whole different widget id. So now instead of checking for just the one vigor widget, we look up all widgets in the vigor set and use those to see if any vigor bar is showing.
Apparently other things are now using the game's UIWidgetPowerBarContainerFrame but we're forcing it to be hidden due to a variety of factors. This attempts to restrict the Hide behavior of that frame to only when we're Dragonriding.
Seems like UnitPowerMax for the AlternateMount power returns the actual max from PLAYER_ENTERING_WORLD until you mount and then dismount a Dragonriding mount. This wasn't previously the case.
Now we rely on the native widget info to tell us whether it believes it should be on or not.