Skip to content

[Bug] Raid Frames: Real preview ignores the general setting once a spec override captures it #2059

Description

@Irame

Description

As soon as any spec override captures a setting, the real preview stops following edits made to that setting on the general settings page. The preview keeps rendering the value that was last banked into the override store, so a boolean usually shows as off no matter what is configured. The live frames are correct the whole time, only the preview is wrong.

Found on the raid frame health bar booleans (Vertical Health Bars), but the resolver is shared, so every module with a real preview is affected.

Steps to reproduce

  1. Raid Frames > Health Bar: enable Vertical Health Bars.
  2. Set Preview Mode to Real.
  3. Create a spec override for a different spec and change Vertical Health Bars there.
  4. Go back to the general settings page.
  5. Toggle Vertical Health Bars.

Expected

The preview follows the toggle. If the current spec's override owns the value, the preview keeps showing the override's value instead, with the gold Preview Mode chrome saying so.

Actual

The preview is pinned to the value stored in the override's default map and never moves, whatever is configured on the page. It only catches up after the next harvest (view exit, spec change, logout).

Cause

SpecOverrides_PeekEffectiveValues resolves every fkey in an entry's default map, falling back to the stored default when the current spec's own map does not carry the key. _RebuildPvOverlay copies that map into _pvOverlayProxy, which wins over db.profile for every preview read. But the overlay is only ever built while the Default view is open (SpecOverrides_ViewActive returns false for editing-as and conditional sessions) and that view is exactly the state that holds the default values live for editing. The stored copy therefore shadows the values being edited.

The same resolver also decodes NIL_SENT on defaults-backed keys, which the writers refuse as harvest residue via HasRegisteredDefault. That hands the preview a nil the live frames never hold, and a nil boolean reads as off.

Version

EllesmereUI: 9.1.8
WoW Client: 12.1.0.69587

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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