Skip to content

CDM Buff Bar: Eclipse (and similar multi-child spells) display incorrectly #11

@nulltyto

Description

@nulltyto

Creating this issue on behalf of discord user Nicklaso.

Balance Druid Eclipse buffs (Lunar 48518 / Solar 48517) share a single CDM spellID (1239669) with two separate children in BuffIconCooldownViewer. This causes several display issues in the CDM buff bar:

  • Only one Eclipse icon shows when both are active (Incarnation: Chosen of Elune)
  • Lunar Eclipse shows a cooldown swipe but with the wrong icon
  • Solar Eclipse shows the default Eclipse icon with no cooldown swipe
  • The spell picker dropdown lists Eclipse twice
  • Selecting one Eclipse entry in the picker removes both

Root Cause

_tickBlizzAllChildCache stores one child per spellID, so the second Eclipse child overwrites the first. Additionally, CDM child frame properties (.isActive, .Icon:GetTexture(), aura data) are WoW "secret" values that cause taint errors when compared or tested in addon code.

Proposed Fix

I have a fix on my fork (fix/lunar-eclipse branch) that I'd like to submit as a PR if you're interested. The approach:

  • Adds a multi-child cache for spells with multiple CDM children within the same viewer
  • Expands the icon list with companion entries filtered by :IsShown()
  • Uses SetTexture() as a taint-safe sink for child icon textures
  • Deduplicates the spell picker dropdown by spellID

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions