mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-23 20:40:50 +00:00
pagemaster: page modifiers via override bindings; hoverbind: warn on conflicts
The old pagemaster wipe block checked a setting that was migrated away and never ran, so saved MOD-key bindings beat the paged action. Override every key bound to ACTIONBUTTON1-12 for each enabled page modifier instead; the saved binding set stays untouched. Hoverbind now reports when a bind takes a key from another action, and when an override masks the new bind.
This commit is contained in:
+22
-11
@@ -828,17 +828,28 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
do
|
||||
local formpage, shift, ctrl, alt, default = 8, 6, 5, 3, 1
|
||||
|
||||
-- set temporary pagemaster bindings keybinds
|
||||
if C.bars.pagemaster == "1" then
|
||||
local modifier = { "ALT", "SHIFT", "CTRL" }
|
||||
local buttons = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "+", "=", "´" }
|
||||
local current = CURRENT_ACTIONBAR_PAGE
|
||||
bars.pagemaster = bars.pagemaster or CreateFrame("Frame", "pfPageMaster", UIParent)
|
||||
bars.pagemaster:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
bars.pagemaster:SetScript("OnEvent", function()
|
||||
for _,mod in pairs(modifier) do
|
||||
for _,but in pairs(buttons) do
|
||||
SetBinding(mod.."-"..but)
|
||||
-- while a page modifier is held, MOD-key must run the main bar binding on
|
||||
-- that key so the switched page fires. Overrides do this without touching
|
||||
-- the saved binding set.
|
||||
local pagemods = {}
|
||||
if C.bars.pagemasteralt == "1" then table.insert(pagemods, "ALT") end
|
||||
if C.bars.pagemasterctrl == "1" then table.insert(pagemods, "CTRL") end
|
||||
if C.bars.pagemastershift == "1" then table.insert(pagemods, "SHIFT") end
|
||||
|
||||
if table.getn(pagemods) > 0 then
|
||||
local pagemaster = CreateFrame("Frame", "pfPageMaster", UIParent)
|
||||
pagemaster:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
pagemaster:RegisterEvent("UPDATE_BINDINGS")
|
||||
pagemaster:SetScript("OnEvent", function()
|
||||
ClearOverrideBindings(this)
|
||||
for i = 1, 12 do
|
||||
for _, key in ipairs({ GetBindingKey("ACTIONBUTTON"..i) }) do
|
||||
-- skip keys that already carry a modifier, e.g. "SHIFT-Q"
|
||||
if not key:find("^%u+%-.") then
|
||||
for _, mod in ipairs(pagemods) do
|
||||
SetOverrideBinding(this, false, mod.."-"..key, "ACTIONBUTTON"..i)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
+16
-2
@@ -105,6 +105,10 @@ pfUI:RegisterModule("hoverbind", function ()
|
||||
end
|
||||
end
|
||||
|
||||
local function BindingName(command)
|
||||
return _G["BINDING_NAME_" .. command] or command
|
||||
end
|
||||
|
||||
function pfUI.hoverbind:GetPrefix()
|
||||
return string.format("%s%s%s",
|
||||
(IsAltKeyDown() and modifiers.ALT or ""),
|
||||
@@ -165,9 +169,19 @@ pfUI:RegisterModule("hoverbind", function ()
|
||||
end
|
||||
else
|
||||
-- Create new binding
|
||||
local key = map and map[arg1] or arg1
|
||||
if (SetBinding(prefix..key, binding)) then
|
||||
local key = prefix .. (map and map[arg1] or arg1)
|
||||
local previous = GetBindingAction(key)
|
||||
if (SetBinding(key, binding)) then
|
||||
SaveBindings(GetCurrentBindingSet())
|
||||
|
||||
if previous and previous ~= "" and previous ~= binding then
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|cff33ffcc" .. key .. "|r " .. T["was unbound from"] .. " " .. BindingName(previous))
|
||||
end
|
||||
|
||||
local active = GetBindingAction(key, true)
|
||||
if active ~= binding then
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|cff33ffcc" .. key .. "|r " .. T["is currently overridden by"] .. " " .. BindingName(active))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user