Skip to content

Commit b7797ab

Browse files
author
mergetest
committed
Merge main for v4.9.0 release
# Conflicts: # DandersFrames.toc
2 parents 78addfb + bf67277 commit b7797ab

13 files changed

Lines changed: 1701 additions & 630 deletions

File tree

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
# DandersFrames Changelog
22

3+
## [4.9.0]
4+
5+
### Bug Fixes
6+
7+
* (Click Casting) **Fixed hover keybinds firing your action bars instead of the frame under your cursor** — when a frame appeared beneath a stationary cursor (a boss frame spawning, someone joining your group), it never picked up your keybinds until you moved the mouse off and back on. (by Krathe)
8+
* (Click Casting) **Fixed hover keybinds never working on frames that appear after you open the settings window** — opening the Click Casting options replaced the internal frame that owns hover bindings with a piece of the settings panel, so every frame created from then on (arena and boss frames, nameplates, frames for people joining your group) silently never got its keyboard bindings, and the automatic repair could not fix it either. A reload was the only way back. (by Krathe)
9+
* (Click Casting) Fixed hover keybinds not applying when you left a frame and returned to it without moving the mouse. (by Krathe)
10+
* (Click Casting) Fixed keyboard binds going dead on every frame for a whole fight when combat interrupted a binding refresh — typically zoning into a raid and a pull starting seconds later. (by Krathe)
11+
* (Click Casting) Fixed hover keybinds dying for the rest of the session on some frames after visiting player housing. (by Krathe)
12+
* (Click Casting) Fixed the automatic bind repair sometimes clearing hover keybinds off a frame you were still hovering, and running needlessly during boss fights. (by Krathe)
13+
* (Click Casting) Fixed the automatic recovery when zoning being cut short on some frames, so it now completes reliably. (by Krathe)
14+
* (Click Casting) Fixed cast-on-down silently switching itself off on Blizzard's own raid and party frames after every roster change. (by Krathe)
15+
* (Pet Frames) Fixed pet frames never appearing in arena (2v2, 3v3 and Solo Shuffle). Arena counts as a raid to the game, so pet frames were being looked for on the raid frames — which arena does not use. They now build alongside the arena frames, and follow your Party pet settings. (by Krathe)
16+
* (Pet Frames) Fixed arena pet frames not appearing when combat started before they finished building. (by Krathe)
17+
18+
### Improvements
19+
20+
* (Click Casting) Work that has to wait for combat to end — profile switches, frame registration, binding refreshes and keyboard-bind rebuilds — now runs from a single queue that always drains, instead of ten separate flags; a keyboard-bind refresh asked for during combat was previously dropped entirely. (by Krathe)
21+
* (Click Casting) Binding-settle timers are now deduplicated so repeated events reuse one pending pass, a background rescan that re-armed itself forever now stops once its work is done, and two setup steps that gave up when combat outlasted their single retry now retry until combat ends. (by Krathe)
22+
* (Click Casting) Applying and clearing bindings now tracks exactly which click attributes were written on each frame instead of a ~500-write blanket sweep, which also fixes the previous profile's action lingering on an unmodified mouse button until reload. (by Krathe)
23+
* (Click Casting) **Removed:** the hidden per-binding "load only for these specs" field, which no settings screen could ever set and which could filter your binding list using unresolved spec data at login — per-spec click casting is unchanged via loadout-assigned profiles. (by Krathe)
24+
25+
326
## [4.8.0]
427

528
### Bug Fixes

ClickCasting/Bindings.lua

Lines changed: 387 additions & 357 deletions
Large diffs are not rendered by default.

ClickCasting/Constants.lua

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,8 @@ local DEFAULT_BINDING = {
306306
alwaysCast = false,
307307
},
308308
-- Load conditions
309-
loadSpec = nil, -- nil = all specs, or table of spec IDs
309+
-- (loadSpec, the per-binding spec gate, was retired: no UI ever wrote it
310+
-- and per-spec click casting is done via loadout-assigned profiles)
310311
loadCombat = nil, -- nil = always, "combat" = in combat only, "nocombat" = out of combat only
311312
}
312313
CC.DEFAULT_BINDING = DEFAULT_BINDING
@@ -523,4 +524,25 @@ local BLIZZARD_ARENA_FRAMES = {
523524
}
524525
CC.BLIZZARD_ARENA_FRAMES = BLIZZARD_ARENA_FRAMES
525526

527+
-- Modifier prefixes whose type1/type2 attributes get blanked to "" to suppress
528+
-- Blizzard's own click-casting on a frame we have taken over
529+
-- (ClearBlizzardClickCastFromFrame), and back to nil when the frame is handed
530+
-- back (RestoreBlizzardDefaults). Shared so the two sides cannot drift: they
531+
-- must name EXACTLY the same attributes, or the suppression outlives the
532+
-- takeover and modified clicks on that frame stay dead until a reload.
533+
--
534+
-- Note the ordering. For the multi-modifier entries this is NOT WoW's canonical
535+
-- attribute order (canonical is alt-ctrl-shift-meta -- see MODIFIER_COMBOS in
536+
-- Bindings.lua), so SecureActionButtonTemplate almost certainly never looks
537+
-- those names up and they are inert. They are still written today, so the
538+
-- restore side has to name them to be sure it undoes everything. Deliberately
539+
-- not "corrected" here: making them canonical would START suppressing
540+
-- multi-modifier Blizzard click-casting that is not suppressed today, which is
541+
-- a behaviour change and not this change's business.
542+
local BLIZZARD_SUPPRESSED_MODIFIERS = {
543+
"shift-", "ctrl-", "alt-",
544+
"shift-ctrl-", "shift-alt-", "ctrl-alt-", "shift-ctrl-alt-",
545+
}
546+
CC.BLIZZARD_SUPPRESSED_MODIFIERS = BLIZZARD_SUPPRESSED_MODIFIERS
547+
526548
-- ============================================================

0 commit comments

Comments
 (0)