You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Suggestion: let a key with extra modifiers fall back to a simpler binding
#109
I have one action-bar slot bound to Alt+Q, running this macro:
/cast [mod:shift] Retaliation; Death Wish
My goal is Alt+Q for Death Wish and Alt+Shift+Q for Retaliation, using the same slot. It doesn’t work.
If only Alt+Q is bound, pressing Alt+Shift+Q does nothing, because the game only looks for an exact match.
If I bind both Alt+Q and Alt+Shift+Q, the macro runs but can’t see that Shift is held, so it always picks Death Wish. The bound modifiers are hidden from the macro while it runs.
What I changed
I added a small fallback in KeyDispatch_h. If nothing is bound to exactly what you pressed, it tries the same key with one modifier dropped. Alt+Shift+Q checks for an Alt+Q binding. When it finds one, it hides only the modifiers that binding uses (Alt), so the macro still sees Shift.
What stays the same
Exact matches still win, so no existing binding changes.
Keys with one modifier or none behave exactly as before.
Hiding the bound modifiers from macros stays as it is.
Size and status
It’s one helper function and one short loop, all in src/bindings/Api.cpp.
Why it’s useful
It lets players put one macro on one key and use a held modifier to choose between two actions, without needing a second keybind for each variation.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
The problem
I have one action-bar slot bound to Alt+Q, running this macro:
/cast [mod:shift] Retaliation; Death Wish
My goal is Alt+Q for Death Wish and Alt+Shift+Q for Retaliation, using the same slot. It doesn’t work.
If only Alt+Q is bound, pressing Alt+Shift+Q does nothing, because the game only looks for an exact match.
If I bind both Alt+Q and Alt+Shift+Q, the macro runs but can’t see that Shift is held, so it always picks Death Wish. The bound modifiers are hidden from the macro while it runs.
What I changed
I added a small fallback in KeyDispatch_h. If nothing is bound to exactly what you pressed, it tries the same key with one modifier dropped. Alt+Shift+Q checks for an Alt+Q binding. When it finds one, it hides only the modifiers that binding uses (Alt), so the macro still sees Shift.
What stays the same
Exact matches still win, so no existing binding changes.
Keys with one modifier or none behave exactly as before.
Hiding the bound modifiers from macros stays as it is.
Size and status
It’s one helper function and one short loop, all in src/bindings/Api.cpp.
Why it’s useful
It lets players put one macro on one key and use a held modifier to choose between two actions, without needing a second keybind for each variation.
This is also how modern classic era works.
All reactions