StrataFix
Ever encounter a bug where UI buttons are not clickable or elements are mysteriously missing?
This is usually caused by a bug in the Blizzard frame code, whereby child frames can accidentally be assigned a lower level in the frame strata than their parent, leading to buttons that appear "behind" their container, making them either unclickable or completely hidden.
StrataFix provides a simple workaround for this bug, which affects numerous UI elements, notably including:
- Encounter Journal
- Quest Log
- Glyph Pane
- AtlasLoot addon
- many AceGUI addons
- and more!
Just install as usual and it silently does its job, problem forever fixed!
StrataFix version 3.0 is a major rewrite of the original fixing code. It integrates a new fixing strategy that more directly targets the bugs in the base Blizzard code, and thereby greatly reduces the chance for conflicts with other addons (especially skinning addons). The old fix code is still available via "/stratafix force", but is now deprecated.
Bug reports: please post a ticket with a screenshot and as much information is possible here: http://www.wowace.com/addons/stratafix/tickets/
WoD/6.0 Update: The bug in Blizzard frames remains in WoW version 6.x, and this addon remains an effective workaround for it.
I was unable to reproduce this problem - please post a ticket with more details at http://www.wowace.com/addons/stratafix/tickets/
I have found one bug though - the Fatigue and Breath bars now show the bar on top of the text, essentially hiding the text until the bar gets low enough to see it. Any way you can fix that? :)
Currently the blacklist is programmatic, so advanced users can toss this line in a macro or addon:
StrataFix.blacklist["MyFrameName"] = true
but I can easily add a slash command to make it a setting. I'll look into that.
I had a typo on my first comment I meant to write "work off a whitelist of (not 'or') parent frames" :)
Meaning walking frame hierarchies but only take action when the parent frame is one of the whitelist (eg. Encounter Journal, Quest Log, Glyph Frame to mention some usual offenders).
That said I understand what you're saying and blacklist can work just as well.
I had the idea that advanced users could use /framestack and add frames to the whitelist, maybe this can be done for the blacklist?
I.e, let me blacklist a frame on the fly until the addon is updated.
The memory churn/leak issue is now fixed.
I've added a blacklist to deal with the fairly-unusual cases where a visible parent frame deliberately sets a visible child frame to a lower frame strata (the opposite of the usual and default arrangement). The blacklist now fixes the issues with all the chat clients (on ChatFrameNEditBox), and I've added entries to deal with the model view on unit frames to handle addons like Adapt.
Please continue to report incompatibilities with any addons and I will add entries as needed to deal with them. The blacklist is also available for addons to add their own entries if they so desire.
I don't want to go the whitelist route for several reasons:
(1) The Blizzard frame code failures can affect almost any addon that creates top-level windows and doesn't explicitly set the level of every single frame. (2) Depending on the UI element, the failure rate can range from very common (as with the Encounter Journal), to exceedingly rare (as I've seen with several adodns using AceGUI-3 UIs).
The combination of these two would make it very difficult to maintain an accurate whitelist. Since this addon merely enforces the default behavior, the rare addons that violate it are easy to pick out because any artifact should be 100% reproducible, so it's much easier to maintain a blacklist.
Fix a memory churn/leak issue
I've added a blacklist to deal with the fairly-unusual cases where a visible parent frame deliberately sets a visible child frame to a lower frame strata (the opposite of the usual and default arrangement). The blacklist now fixes the issues with all the chat clients (on ChatFrameNEditBox), and I've added entries to deal with the model view on unit frames to handle addons like Adapt.
Please continue to report incompatibilities with any addons and I will add entries as needed to deal with them. The blacklist is also available for addons to add their own entries if they so desire.
This is a nice idea, it does fix some obvious problems (dungeon journal, questlog etc) but it also creates artifacts for some ui elements and addons.
Examples:
- Adapt unitframe models
- NeonChat
Would it be an idea to have it work off a whitelist or parent frames maybe?
Great idea. One problem, though. It got a memory leak. It consumes memory continually, whether or not you are mousing over a frame.
v1.0 in WoW 4.2.2 live, USEnglish client/server. Testing with OptionHouse, it consumes 19-22 kb/second 100% of the time until the next garbage collection happens. It continues to consume at the same rate no matter what you are doing.