From e917db7a4e4bcff38538e591e16dcaa34c5fb127 Mon Sep 17 00:00:00 2001 From: "vjekoslav.krenek@gmail.com" <313787825+svart2521@users.noreply.github.com> Date: Tue, 15 Sep 2026 10:41:28 +0200 Subject: [PATCH] Fix: QOL - Raid Tools Quick Fire Bug: Issue: Quick Fire's Hot Keys section (Place/Undo/Clear world-marker binds) would not register mouse button binds at all, including modifier chords like Ctrl+Shift+Middle Mouse Button. Fix: AddQuickFireKeybind's capture button only ever registered LeftButtonUp/RightButtonUp and had no OnClick handling to treat a click as the captured chord -- OnKeyDown, its only capture path, never fires for mouse buttons at all. Mirrored the working pattern already used by Quickdraw's own keybind picker: RegisterForClicks("AnyUp"), plus an OnClick branch that, while listening, takes any button other than Left/Right as the chord via GetConvertedKeyOrButton + CreateKeyChordStringUsingMetaKeyState, modifiers included. A modified Left/Right click (e.g. Ctrl+Left) is also captured as a chord; only a PLAIN Left/Right click keeps its fixed meaning on this button (arm/unbind), per its own tooltip. The runtime side (SetOverrideBindingClick) already accepted mouse-button chord strings without any changes -- only the options-panel capture widget was missing the mouse path. --- .../EUI_QoL_RaidTools_Options.lua | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/EllesmereUIOptions/EUI_QoL_RaidTools_Options.lua b/EllesmereUIOptions/EUI_QoL_RaidTools_Options.lua index 6e13c7657..4dbc256bd 100644 --- a/EllesmereUIOptions/EUI_QoL_RaidTools_Options.lua +++ b/EllesmereUIOptions/EUI_QoL_RaidTools_Options.lua @@ -353,7 +353,7 @@ initFrame:SetScript("OnEvent", function(self) PP.Size(button, 126, 29) PP.Point(button, "RIGHT", region, "RIGHT", -20, 0) button:SetFrameLevel(region:GetFrameLevel() + 4) - button:RegisterForClicks("LeftButtonUp", "RightButtonUp") + button:RegisterForClicks("AnyUp") local bg = EllesmereUI.SolidTex(button, "BACKGROUND", EllesmereUI.DD_BG_R, EllesmereUI.DD_BG_G, @@ -393,6 +393,22 @@ initFrame:SetScript("OnEvent", function(self) button:SetScript("OnClick", function(self, mouseButton) if QuickFireDisabled() then return end + -- OnKeyDown never fires for mouse buttons, so a listening + -- capture takes them here instead. Plain Left/Right stay + -- excluded (arm/unbind); modified Left/Right are fine. + if listening and ((mouseButton ~= "LeftButton" and mouseButton ~= "RightButton") + or IsModifierKeyDown()) then + listening = false + self:EnableKeyboard(false) + Set(key, CreateKeyChordStringUsingMetaKeyState( + GetConvertedKeyOrButton(mouseButton))) + Refresh() + RefreshState() + if EllesmereUI._NotifySettingWrite then + EllesmereUI._NotifySettingWrite(region) + end + return + end if mouseButton == "RightButton" then if listening then listening = false