File Details
ClassicLootManager-TBC-fixed.zip
- R
- Mar 15, 2026
- 2.04 MB
- 230
- 2.5.5
- Classic TBC
File Name
ClassicLootManager-TBC-fixed.zip
Supported Versions
- 2.5.5
## v1.9.3-TBC — Addon Conflict Fixes
### Fixed
- Addon panel corruption (Rested EXP, etc.) : Fixed a critical bug where CLM double-registered its options panel in `INTERFACEOPTIONS_ADDONCATEGORIES` (once via AceConfigDialog `AddToBlizOptions`, once via `TBCOptionsPanel`). This corrupted the addon category list and prevented addons registered after CLM (e.g. Rested EXP) from appearing in Escape > Interface > AddOns.
- CloseSpecialWindows taint : AceConfigDialog was replacing the global `CloseSpecialWindows()` function with addon code. This caused taint propagation when pressing Escape, breaking the Interface Options panel and preventing other addons from being toggled. Now uses `hooksecurefunc` instead, which preserves secure execution.
- Settings API removed for TBC 2.5.5 : Removed `Settings.RegisterCanvasLayoutCategory` / `Settings.RegisterAddOnCategory` fallback paths from both `TBCOptionsPanel.lua` and `AceConfigDialog-3.0.lua`. These APIs are Dragonflight+ only and caused silent corruption of the addon list on TBC Anniversary.
- CloseMenus taint reduction : LibUIDropDownMenu's `CloseMenus` hook now only hides dropdown frames when they are actually visible, reducing unnecessary taint propagation from the Escape key.
- UISpecialFrames duplicates : `MakeFrameCloseOnEsc` now checks for existing entries before inserting into `UISpecialFrames`, preventing duplicate accumulation that contributed to taint issues.
- Duplicate panel guard : `TBCOptionsPanel` now verifies the panel isn't already registered in `INTERFACEOPTIONS_ADDONCATEGORIES` before calling `InterfaceOptions_AddCategory`, preventing corruption on `/reload`.
### Files changed
- `Modules/ConfigManager/ConfigManager.lua` — Removed `AddToBlizOptions` calls
- `TBCOptionsPanel.lua` — Removed Settings API, added duplicate check
- `Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua` — `hooksecurefunc` instead of global replacement, removed Settings API
- `Libs/LibUIDropDownMenu/LibUIDropDownMenu.lua` — Conditional hide in CloseMenus hook
- `Utils.lua` — Duplicate guard in MakeFrameCloseOnEsc

