Skip to content

v4.2.0

Choose a tag to compare

@1onar 1onar released this 19 Feb 20:45
· 26 commits to main since this release

KeyUI

v4.2.0 (2026-02-19)

Full Changelog Previous Releases

  • refactor: replace toggle tab buttons with arrow-up dropdown menu on all frames
    • Rename CreateArrowDownButton → CreateArrowUpButton with flipped TexCoords
    • Mouse frame: menu opens upward via post-open reposition (BOTTOMRIGHT→TOPRIGHT)
    • Add CreateToggleMenuButton for Keyboard/Controller: single arrow-up button
      left of Options tab, dropdown with Background/ESC/Combat/Lock/Ghost
    • All APIs (MenuUtil, GameTooltip_SetTitle/AddNormalLine) verified compatible
      across Classic Era, Cata, Wrath and Retail via /API
      Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • feat: add Action Bar Mode overlay with cooldown, usable, count, range
    Adds live action bar state mirroring to key buttons via a single "Action
    Bar Mode" toggle in the Controls panel:
    • Cooldown swipe/countdown on action icons (CooldownFrameTemplate)
    • Usable state: grey tint for wrong stance, blue for low mana
    • Stack/charge count displayed bottom-right on icon
    • Range indicator: keybind text turns red when target out of range
      Bug fixes:
    • Retail combat crash: pcall-guard secret-value cooldown comparisons
    • Charge recovery swipe: GetActionCharges fallback when main CD is 0/0
    • Overlays now initialized on open via resolve_binding()
      API_COMPAT flags added: has_modern_action_charges. Consolidates four
      individual checkboxes into one show_actionbar_mode setting. Range checked
      via 0.1s OnUpdate poll; other overlays event-driven.
      Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • refactor: stabilize refresh flow and add validation/pooling diagnostics
    add strict profile/layout validation and settings normalization
    introduce key button pooling and selective slot refresh fallback logic
    add performance/diagnostic slash tooling and compatibility doc updates