promotional bannermobile promotional banner

Cooldown Cursor

Cooldown Cursor shows spell cooldowns at your mouse, so you can track them without losing focus on the action.

File Details

2.3.1-nolib

  • R
  • Mar 6, 2026
  • 64.80 KB
  • 19
  • 12.0.1+1
  • Retail

File Name

CooldownCursor-2.3.1-nolib.zip

Supported Versions

  • 12.0.1
  • 12.0.0

lightweight tag efcd4855fd26a4a16e57e77feca4b9a69d6c6685 2.3.1
Author:    GitHub <noreply@github.com>
Date:    Fri Mar 6 21:15:25 2026 +1100

commit efcd4855fd26a4a16e57e77feca4b9a69d6c6685
Author: Joel Cumberland <2245816+jrosco@users.noreply.github.com>
Date:   Fri Mar 6 21:15:25 2026 +1100

    fix: Remove dead anchor code from Cursor.lua and invalidate spellbook… (#11)

    * fix: Remove dead anchor code from Cursor.lua and invalidate spellbook cache on spec change

    Cursor.lua duplicated the full screen anchor implementation (EnsureAnchorFrame,
    ApplyAnchorPosition, IsScreenMode, UpdateAnchorVisibility, ApplyScreenAnchors,
    ApplyPositionMode) that already lives in Anchor.lua. Since Anchor.lua loads
    after Cursor.lua, its exports silently overwrote the Cursor.lua ones, leaving
    the Cursor.lua versions unreachable. Remove the dead section and its now-unused
    imports (C, Internal, POSITION_MODE).

    Also call InvalidateSpellBookCache() in PLAYER_SPECIALIZATION_CHANGED so the
    Spells module cache is force-expired on spec swap alongside State.knownSpellCache,
    preventing stale spellbook data for up to 60 seconds after a spec change.

    Update .gitignore

    refactor: Replace monolithic OnEvent handler with dispatch table in Init.lua

    - Replace if/else event chain with an eventHandlers dispatch table for
      cleaner, per-event handler functions that are easy to add or remove
    - Add IsGuarded() helper consolidating CheckShowWhenState/CheckMountedState
      calls that were duplicated inline across multiple event branches
    - Extract ProcessSpellEvent() for the debounce + cooldown query logic
    - Extract HandleSpellCastEvent() as a shared handler for all four spell
      cast/cooldown events, wired via a loop over SPELL_CAST_EVENTS
    - Remove SPELL_UPDATE_USABLE from SPELL_EVENTS (dead code: it was caught
      earlier in the chain and never reached that block)
    - Remove redundant durationObj nil-check and commented-out usable line
      from ProcessSpellEvent

    refactor: Add debugging function and doc

    * chore: Add update to release notes

    * chore: Add update to release notes

commit 8e1879f70813bd56ab0b049e9c0d2995b2b7fc5e
Author: jrosco <2245816+jrosco@users.noreply.github.com>
Date:   Sun Mar 1 23:28:33 2026 +1100

    Update .gitignore