>wowhelm_
~/forever/addon-api/source/1.60.1.70755

Interface/AddOns/Blizzard_ActionBar/Shared/ActionButtonUtil.lua

1.60.1.70755 compared with 1.60.1.70707 · 2026-11-03 · +13 −5· view file
@@ -315,14 +315,24 @@ function ActionButtonUtil.GetActionBarStatusForSpell(spellID, excludeNonPlayerBa
if (InputUtil.IsMKBUIEnabled()) then
local barsWithSpell = ActionButtonUtil.GetMkbActionBarsForSpell(spellID, excludeNonPlayerBars, excludeSpecialPlayerBars);
- return ActionButtonUtil.GetActionBarStatusFromMkbBars(barsWithSpell);
+ local status = ActionButtonUtil.GetActionBarStatusFromMkbBars(barsWithSpell);
+ status = ActionButtonUtil.OverrideStatusForUnplacedSpell(status, spellID, not barsWithSpell);
+ return status;
elseif (InputUtil.IsGamepadUIEnabled()) then
- return ActionButtonUtil.GetActionBarStatusForSpellFromGamepadBars(spellID, excludeSpecialPlayerBars);
+ -- Get the slots this spell is in across both normal and stance gamepad bars.
+ local gamepadButtonsWithSpell = C_ActionBar.FindSpellActionButtons(spellID, Enum.ActionBarSet.Gamepad);
+ local status = ActionButtonUtil.GetActionBarStatusForSpellFromGamepadBars(spellID, excludeSpecialPlayerBars, gamepadButtonsWithSpell);
+ status = ActionButtonUtil.OverrideStatusForUnplacedSpell(status, spellID, not gamepadButtonsWithSpell);
+ return status;
end
return ActionButtonUtil.ActionBarActionStatus.NotMissing;
end
+function ActionButtonUtil.OverrideStatusForUnplacedSpell(status, spellID, barsWithSpell)
+ return status;
+end
+
-- Determine a standard action bar "status" based on the status of bars a spell is on, if any
function ActionButtonUtil.GetActionBarStatusForPetAction(petActionID)
if not petActionID or C_PetInfo.IsPetActionPassive(petActionID) then
@@ -413,9 +423,7 @@ local function HasAnySlotOnGamepadActiveStanceBar(slots)
return false;
end
-function ActionButtonUtil.GetActionBarStatusForSpellFromGamepadBars(spellID, excludeSpecialPlayerBars)
- -- Get the slots this spell is in across both normal and stance gamepad bars.
- local gamepadButtonsWithSpell = C_ActionBar.FindSpellActionButtons(spellID, Enum.ActionBarSet.Gamepad);
+function ActionButtonUtil.GetActionBarStatusForSpellFromGamepadBars(spellID, excludeSpecialPlayerBars, gamepadButtonsWithSpell)
if (not gamepadButtonsWithSpell) then
return ActionButtonUtil.ActionBarActionStatus.MissingFromAllBars;
end