Clicked

Clicked

294k Downloads

Bindings with Command Key and other Modifier not working (Mac)

tflo opened this issue · 7 comments

commented

Describe the bug

On the Mac, bindings that include the Command key and other modifier key(s) are not working.

Worth to mention:

  • If Command is the only modifier, it works.

  • I can set the binding (though it does not work):

WoWScrnShot_111121_111725

  • In the WoW client I can set such combos and they do work:

WoWScrnShot_111121_113949


Since you are probably on Windows, some additional info:

  • APIs (including WoW itself) might use the Linux terminology “meta”, but on the Mac this is functionally identical to “cmd” (Command). In macros for example, both are interchangeable: [mod:cmd] does the same as [mod:meta]. In the client’s native Key Bindings interface it appears as “CMD” (see screenshot above).
  • The Command key was not always usable/bindable as independent modifier in WoW. This has been introduced only with 9.0. So, it might be possible that you are using an outdated library, or that a library has not been updated yet (though the key is available for over a year now).

Thanks for having a look into that – and thanks for developing this great add-on!

– Tom


PS: If you need help/inspiration, have a look at how it is implemented in the Dominos add-on. This is also an add-on that makes heavy use of key bindings and a similar issue has been fixed there some time ago (tullamods/Dominos#465).


Clicked Version

1.6.6

World of Warcraft Flavor

Shadowlands

Testing

  • Yes
  • No

Lua Errors

none

Reproduction Steps

See description.

Last Working Version

Unknown, probably never.

Screenshots

See description.

Debug Output

Click to open

Version: 1.6.6
Project ID: 1
Race: DarkIronDwarf
Level: 60
Class: MAGE
Specialization: 64
Talents: 1/3 2/1 3/1 4/1 5/1 6/2 7/2
Mode: AnyDown

Possess Bar: disabled
Override Bar: disabled
Vehicle: disabled
Vehicle UI: disabled
Pet Battle: disabled

----- Loaded binding 1 -----
Keybind: META-.
Hovercast: true
Action: macro
Identifier: clicked-button-meta.

/stopspelltarget
/invite

----- Loaded binding 2 -----
Keybind: 0
Hovercast: true
Action: macro
Identifier: clicked-button-0

/stopcasting
/stopspelltarget
/use [@mouseOver] Goblin Glider Kit

----- Loaded binding 3 -----
Keybind: SHIFT-BUTTON1
Hovercast: true
Action: macro
Identifier: 1

/stopspelltarget
/focus [@mouseOver]

----- Loaded binding 4 -----
Keybind: -
Hovercast: true
Action: macro
Identifier: clicked-button--

/stopcasting
/stopspelltarget
/use [@mouseOver] Goblin Glider Kit

----- Loaded binding 5 -----
Keybind: SHIFT-BUTTON2
Hovercast: true
Action: macro
Identifier: 2

/stopspelltarget
/run if SUFUnitplayer:IsMouseEnabled() then SUFUnitplayer:EnableMouse(false); else SUFUnitplayer:EnableMouse(true); end

----- Loaded binding 6 -----
Keybind: META-.
Hovercast: false
Action: macro
Identifier: clicked-button-meta.

/stopspelltarget
/invite

----- Loaded binding 7 -----
Keybind: ALT-CTRL-SHIFT-F12
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrl-shiftf12

/stopspelltarget
/zm mount

----- Loaded binding 8 -----
Keybind: ALT-CTRL-SHIFT-M
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrl-shiftm

/stopspelltarget
/run local v = DominosDB["profiles"]["Default"]["showMacroText"]; v = not v; Dominos:SetShowMacroText(v)

----- Loaded binding 9 -----
Keybind: ALT-CTRL-M
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrlm

/stopspelltarget
/mountspecial

----- Loaded binding 10 -----
Keybind: ALT-CTRL-X
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrlx

/startattack
/stopspelltarget
/use [@target] Lucille's Sewing Needle

----- Loaded binding 11 -----
Keybind: SHIFT-F4
Hovercast: false
Action: macro
Identifier: clicked-button-shiftf4

/stopspelltarget
/acp disableall
/acp addset 4
/bal load 160 Old Resting
/logout

----- Loaded binding 12 -----
Keybind: META-SHIFT-9
Hovercast: false
Action: macro
Identifier: clicked-button-meta-shift9

/stopspelltarget
/run print('Key combo is working.')

----- Loaded binding 13 -----
Keybind: SHIFT-P
Hovercast: false
Action: macro
Identifier: clicked-button-shiftp

/stopspelltarget
/dismisspet

----- Loaded binding 14 -----
Keybind: SHIFT-F5
Hovercast: false
Action: macro
Identifier: clicked-button-shiftf5

/stopspelltarget
/acp disableall
/acp addset 5
/bal load 400 Torghast
/reload

----- Loaded binding 15 -----
Keybind: SHIFT- Hovercast: false Action: macro Identifier: clicked-button-shift

/stopspelltarget
/acp

----- Loaded binding 16 -----
Keybind: ALT-CTRL-B
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrlb

/stopspelltarget
/script WeakAuras.ScanEvents("POLI_INITIALIZE_STATS", true)

----- Loaded binding 17 -----
Keybind: ALT-CTRL-G
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrlg

/startattack
/stopspelltarget
/use Beeholder's Goggles

----- Loaded binding 18 -----
Keybind: ALT-CTRL-SHIFT-F11
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrl-shiftf11

/stopspelltarget
/mountspecial
/use [@cursor,nomounted] Door of Shadows

----- Loaded binding 19 -----
Keybind: ALT-CTRL-R
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrlr

/startattack
/stopspelltarget
/use Anglers Fishing Raft

----- Loaded binding 20 -----
Keybind: ALT-CTRL-P
Hovercast: false
Action: macro
Identifier: clicked-button-alt-ctrlp

/stopspelltarget
/run SendChatMessage("Thank you. Until next time, bye.", "PARTY"); C_Timer.After(5.0, function() C_PartyInfo.LeaveParty() end)

----- Loaded binding 21 -----
Keybind: ALT-'
Hovercast: false
Action: macro
Identifier: clicked-button-alt'

/stopspelltarget
/run local petID = GetMouseFocus().petID if petID and C_PetJournal.PetIsTradable(petID) then C_PetJournal.CagePetByID(petID) elseif petID then print("Pet is not tradable.") end

----- Loaded binding 22 -----
Keybind: =
Hovercast: false
Action: macro
Identifier: clicked-button-=

/stopspelltarget
/cast Disenchant
/cast Prospecting

----- Loaded binding 23 -----
Keybind: L
Hovercast: false
Action: macro
Identifier: clicked-button-l

/stopspelltarget
/run ObjectiveTrackerFrame.HeaderMenu.MinimizeButton:Click()

----- Loaded binding 24 -----
Keybind: SHIFT-BUTTON1
Hovercast: false
Action: macro
Identifier: clicked-mouse-shift1

/stopspelltarget
/focus [@mouseOver]

----- Loaded binding 25 -----
Keybind: SHIFT-F2
Hovercast: false
Action: macro
Identifier: clicked-button-shiftf2

/stopspelltarget
/acp disableall
/acp addset 2
/bal load 120 Current Resting
/logout

----- Loaded binding 26 -----
Keybind:
Hovercast: false
Action: macro
Identifier: clicked-button-\

/stopspelltarget
/use Fishing

----- Loaded binding 27 -----
Keybind: SHIFT-F3
Hovercast: false
Action: macro
Identifier: clicked-button-shiftf3

/stopspelltarget
/acp disableall
/acp addset 3
/bal load 140 Old Normal
/reload

----- Loaded binding 28 -----
Keybind: SHIFT-F1
Hovercast: false
Action: macro
Identifier: clicked-button-shiftf1

/stopspelltarget
/acp disableall
/acp addset 1
/bal load 100 Current Normal
/reload

----- Macro Handler Attributes -----
type-clicked-button-shiftf1: macro
macrotext-clicked-button-alt-ctrlb: /stopspelltarget
macrotext-clicked-button-alt-ctrlb: /script WeakAuras.ScanEvents("POLI_INITIALIZE_STATS", true)
type-clicked-button-meta.: macro
type-clicked-button-alt-ctrl-shiftm: macro
type-clicked-button-shiftf3: macro
type-clicked-button-alt-ctrlm: macro
macrotext-clicked-mouse-shift1: /stopspelltarget
macrotext-clicked-mouse-shift1: /focus [@mouseOver]
macrotext-clicked-mouse-shift1:
type-clicked-button-shiftf4: macro
type-clicked-button-meta-shift9: macro
type-clicked-button-alt-ctrl-shiftf11: macro
type-clicked-button-l: macro
type-clicked-mouse-shift1: macro
type-clicked-button-alt-ctrlx: macro
macrotext-clicked-button-shiftf2: /stopspelltarget
macrotext-clicked-button-shiftf2: /acp disableall
macrotext-clicked-button-shiftf2: /acp addset 2
macrotext-clicked-button-shiftf2: /bal load 120 Current Resting
macrotext-clicked-button-shiftf2: /logout
type-clicked-button-: macro
macrotext-clicked-button-=: /stopspelltarget
macrotext-clicked-button-=: /cast Disenchant
macrotext-clicked-button-=: /cast Prospecting
macrotext-clicked-button-shiftp: /stopspelltarget
macrotext-clicked-button-shiftp: /dismisspet
macrotext-clicked-button-alt-ctrl-shiftm: /stopspelltarget
macrotext-clicked-button-alt-ctrl-shiftm: /run local v = DominosDB["profiles"]["Default"]["showMacroText"]; v = not v; Dominos:SetShowMacroText(v)
macrotext-clicked-button-meta-shift9: /stopspelltarget
macrotext-clicked-button-meta-shift9: /run print('Key combo is working.')
macrotext-clicked-button-alt-ctrlp: /stopspelltarget
macrotext-clicked-button-alt-ctrlp: /run SendChatMessage("Thank you. Until next time, bye.", "PARTY"); C_Timer.After(5.0, function() C_PartyInfo.LeaveParty() end)
type-clicked-button-alt-ctrlp: macro
type-clicked-button-shiftf5: macro
macrotext-clicked-button-shiftf1: /stopspelltarget
macrotext-clicked-button-shiftf1: /acp disableall
macrotext-clicked-button-shiftf1: /acp addset 1
macrotext-clicked-button-shiftf1: /bal load 100 Current Normal
macrotext-clicked-button-shiftf1: /reload
type-clicked-button-alt-ctrl-shiftf12: macro
macrotext-clicked-button-alt-ctrlg: /startattack
macrotext-clicked-button-alt-ctrlg: /stopspelltarget
macrotext-clicked-button-alt-ctrlg: /use Beeholder's Goggles
macrotext-clicked-button-alt-ctrlm: /stopspelltarget
macrotext-clicked-button-alt-ctrlm: /mountspecial
macrotext-clicked-button-: /stopspelltarget
macrotext-clicked-button-: /use Fishing
type-clicked-button-shiftf2: macro
macrotext-clicked-button-shift: /stopspelltarget macrotext-clicked-button-shift: /acp
type-clicked-button-alt': macro
type-clicked-button-=: macro
type-clicked-button-alt-ctrlr: macro
macrotext-clicked-button-l: /stopspelltarget
macrotext-clicked-button-l: /run ObjectiveTrackerFrame.HeaderMenu.MinimizeButton:Click()
macrotext-clicked-button-alt': /stopspelltarget
macrotext-clicked-button-alt': /run local petID = GetMouseFocus().petID if petID and C_PetJournal.PetIsTradable(petID) then C_PetJournal.CagePetByID(petID) elseif petID then print("Pet is not tradable.") end
macrotext-clicked-button-alt-ctrl-shiftf12: /stopspelltarget
macrotext-clicked-button-alt-ctrl-shiftf12: /zm mount
type-clicked-button-alt-ctrlb: macro
macrotext-clicked-button-meta.: /stopspelltarget
macrotext-clicked-button-meta.: /invite
macrotext-clicked-button-shiftf3: /stopspelltarget
macrotext-clicked-button-shiftf3: /acp disableall
macrotext-clicked-button-shiftf3: /acp addset 3
macrotext-clicked-button-shiftf3: /bal load 140 Old Normal
macrotext-clicked-button-shiftf3: /reload
macrotext-clicked-button-alt-ctrlr: /startattack
macrotext-clicked-button-alt-ctrlr: /stopspelltarget
macrotext-clicked-button-alt-ctrlr: /use Anglers Fishing Raft
macrotext-clicked-button-shiftf5: /stopspelltarget
macrotext-clicked-button-shiftf5: /acp disableall
macrotext-clicked-button-shiftf5: /acp addset 5
macrotext-clicked-button-shiftf5: /bal load 400 Torghast
macrotext-clicked-button-shiftf5: /reload
macrotext-clicked-button-shiftf4: /stopspelltarget
macrotext-clicked-button-shiftf4: /acp disableall
macrotext-clicked-button-shiftf4: /acp addset 4
macrotext-clicked-button-shiftf4: /bal load 160 Old Resting
macrotext-clicked-button-shiftf4: /logout
macrotext-clicked-button-alt-ctrlx: /startattack
macrotext-clicked-button-alt-ctrlx: /stopspelltarget
macrotext-clicked-button-alt-ctrlx: /use [@target] Lucille's Sewing Needle
type-clicked-button-shiftp: macro
type-clicked-button-alt-ctrlg: macro
macrotext-clicked-button-alt-ctrl-shiftf11: /stopspelltarget
macrotext-clicked-button-alt-ctrl-shiftf11: /mountspecial
macrotext-clicked-button-alt-ctrl-shiftf11: /use [@cursor,nomounted] Door of Shadows
type-clicked-button-shift`: macro

----- Hovercast Attributes -----
type-clicked-button-0: macro
shift-macrotext1: /stopspelltarget
shift-macrotext1: /focus [@mouseOver]
shift-macrotext1:
macrotext-clicked-button-0: /stopcasting
macrotext-clicked-button-0: /stopspelltarget
macrotext-clicked-button-0: /use [@mouseOver] Goblin Glider Kit
type-clicked-button-meta.: macro
macrotext-clicked-button-meta.: /stopspelltarget
macrotext-clicked-button-meta.: /invite
shift-type2: macro
shift-macrotext2: /stopspelltarget
shift-macrotext2: /run if SUFUnitplayer:IsMouseEnabled() then SUFUnitplayer:EnableMouse(false); else SUFUnitplayer:EnableMouse(true); end
type-clicked-button--: macro
macrotext-clicked-button--: /stopcasting
macrotext-clicked-button--: /stopspelltarget
macrotext-clicked-button--: /use [@mouseOver] Goblin Glider Kit
shift-type1: macro

----- Registered unit frames -----
Boss1TargetFrame
Boss2TargetFrame
Boss3TargetFrame
Boss4TargetFrame
Boss5TargetFrame
CompactRaidFrame1
CompactRaidFrame1Buff1
CompactRaidFrame1Buff2
CompactRaidFrame1Buff3
CompactRaidFrame1Debuff1
CompactRaidFrame1Debuff2
CompactRaidFrame1Debuff3
CompactRaidFrame1DispelDebuff1
CompactRaidFrame1DispelDebuff2
CompactRaidFrame1DispelDebuff3
FocusFrame
FocusFrameToT
PartyMemberFrame1
PartyMemberFrame1PetFrame
PartyMemberFrame2
PartyMemberFrame2PetFrame
PartyMemberFrame3
PartyMemberFrame3PetFrame
PartyMemberFrame4
PartyMemberFrame4PetFrame
PetFrame
PlayerFrame
SUFHeaderpartyUnitButton1
SUFUnitfocus
SUFUnitpet
SUFUnitplayer
SUFUnittarget
TargetFrame
TargetFrameToT

----- Profile -----
S31AZPTs22Fl3mFyCQAId4xjotDQAW2yBoXi4GWj3mNjanIgqJfsCBjzhsLIF73D3sG17UrsaY(O5dZXr0i0ZE1R9ETx7Ev71TN8qv9rQ6tmH)wITbRfZX9KBw7YoT6jRocRBPowftOFQmsXs1qNoQzifIXxqA2WyFpXwF5a1XlhiF)13RRAnxdTat(udZMg2M466OHA4rh82LdSMIHr6FuoFmBKhmgPzIF7)C5am8FtAGweBNXPpcoi1TWeI9CREdHdFezc2IEuuBmS5lrMSnRG0vWA)Hn2gpsEowtJUrvl8m3Zb3ZOgkWPNCd6oCmsb)FACzlj5)tdPV0VPQPsF47BsVc0erEa2Ng6pIjwS9qxJgJ6Drpz8pWk20H0ImY9IMj9NB9pJjCaAvZ2YOMLfs5b6HbBtTXwpVf2vxj0m4IBh61wfBtlJzlhW2EpREYpGxqVX1tw(2gx39DxCF3UTKoQN8CebUH1tEcXWE(7G7yoxoO3DLj4j2AiY6B0pQAbxU7jxt6B9KNAaNyAQwlC)32WfWEYxv)6A3Fxx4xe(hUFF3BN0d8PgW5Vc9kmS7dUh8U7HV96XU67FbDFQzGgr)YopXqpJ7GrAZOB6rNhUK1wap1axKWAyfl8i43f(EkgZgIy)SoddUY7FaQ6Wvv4wEx6tZWWmHNX1GDJulP6EgRuf4gVTML6C4dzVb4mc2jSIgYKDLB1xUtRBUNZ32ziSVUZ5ud9BO3l8Cgf8qLapO59x5RgWTm4PW1NqrCq6og2Vd88LIkst9NOvVC6E8spBsyNaFm77J))SvNphUY(8f9GhIZmSHxj8mIqxVhRTaUcNWnetl4gR10egbSlOZeKWiGNxPpD)8Debpd)PHoM92u8NHJniSN62SlDZXj9mO5tQZML8vL5poVBkpPuMI01XA(2)Y(UXjRJNGw)kJHT1iddc7b6yFPj4ZQnK6FtNw33UF7AD6(T(T60VtTgxf(TXhX6O0CN5jePPXip3yOth67nDDmmhdBws60OFw34jg(J7Sdbgn80mfmycH9Qa9uL(eomXys4AW0MXGRn2aM4D5G)8Fbp)BIPt299L)EjEZk8gy6LDiEdmLtjEti0Qs8MyMlRGJ3SEATsie3f0LwierWfKth8ox0PyWBooeEtmamWQ6NZwtpaY4SckaG59oRzhRJNTa(x01xdFSUHZAE)h6Wk1zlL67)pYo)H3b5SQ3pv57TvvEy5G2gkpaRrz7trsv)X(ZOuKgIM0VkGmic5ia5nJKJmMyd8ezKhFAkgR5JBuZw3lx)R3wV(Dx16RsrS0Gx60pGlZbiVuchuuGdyuReG4rjqqqM95kqG)Pb9)tT9af2ErDjRRcMb26nQENqjiDcfWY7wpDvCaLBx)U7IJG0oaxj3c9M0zF88ZpZnyB5x83QDx33Dz3o39oNaXDnf6ZpPiaKRG)4qzq46jZpiCHbB33bHZBSsyrt9LEq4kXc3QyHDFc4zCTbzMzWGST9qcJkCCNgeT5dbY6umSLqkZ3biouMmMaLmnT(vRigpgAC2ZusEQDz7pTCqR50SJ1gPhGhJd0YGxHeycN9LscmffcmsvPPdtuAmPBgKYGFTlc(1AyvrINvbFTQ(xB9zuYlNjA02yj6C5aAw))u1Zo70ZGPFkYAhGB4XOzHnjTdCHbbPrZGvhAwc9kBGOWsk435lzPiclLWiQ7BwkLsfWrniLsfWr4o5A49IvTaIa15nGxFKIK8brrsCYjZneK(OLdQ)J54rQubhSCW3qpSdWuqdzs1Qptwo9xGEG9h5exfEGk3u)BLqjLQoRu1zoYrmS48kznv0vDMqsgyJyn5fk5CkuYhtwk1C0sTMHcsB5ayndnUA5GFdGAWwSKCFnvrAh82dD)eQMRD)tgu0L9BJT(DdBIos7q4pBy2LGgrvv5bSHTwc2(g4LOjyyWxSOXvRhgva2E27oc3EobOlDWBGXcSOaAf6gWFy5(lC4BG9(Urp20q0n04h9hQsgPah89RiOGd4gOoEGF0lvlhaxa8bbstc0FpyEFOPqtqXx7xS1bvsDuIVoxsdiFgvnPY7EeMGk1FTFrIlgPQJl1FDz8dxvYcfs9xVfqcJq)1N)myyJU1BUDLtqnAHEqa0PRvnNQQpz5GoOXa5iMo72213ZVugpUsLpuz0OFDlloJF80tRu5tU)VtR8PJo7C3)XVM(NrFO(9Fn9xKWcvGh0eNcfATqf6KLy)vyrQkltOiyIiNlWuhxwMqRlIMY0CXet8UUmH2cWuElS1JOm2QwzxIsDbgp1qdwA9FhqQUXycGzzUJWO2Eql38QeA5BOjgfd(pFTwN7AD5N5uAOUdkt1G6T2ZqCkbvNHuwbQcXXtaHGxcT8seAjy2ndOU6Q0fpjvLJXkCsSvG6ivZzQMa83UOgEwLwPhr6a1PuLoPRCoEDcrMJ4e8O1AEuy89Td7YbTZqi22C)nyhfITRrenBLhkmamDA0cyiMO3duRdBqzcG5Z2ADvj8WywpkoWmuLYSQQXJiHm013vA0booNrjmZRfyMic0wvpoDWwpsBsvp74ZQ8HDeRLv)yBkMIOHf7)nDYRwcncru9Uu59O)0iFBTM1KsE2B3XKPjVVcrEObXq)QNqKXj)Z5FOLSfkzl41LGEX5xnzmqurWwq0Ceh9cy7wRZn1J2FUYL1V6Z)3(aJldZCd8T9p(QRyrLVYWGSCGb1s7MIgz8eTIPYxJBlxlCuN0YC59DKPlEpWJk7r9dug6SOeiM8Eo0zV6QB0son5mNgF8Pdv4ZRe4yinwhsQ)5H5TvnK5eu9CXQx0FsDmthLrV1lZh2cd6RJSSj4(MpPo2shBcOgIydobuL2v4zg6QklhCdYc)eAXMd98VBY8eh4e3Bq0cH4eYVq3aRkOWkeGsiNIiKtzravweqEDV30weq7iihMdf4ye2UgGJxcphvz7QGTDue1UgBPmDZtsJObu7vTH4CN2cD1q2OX(XvQV9EPU19LZMWwvJ7yYwu)eiAFSHS3IYxjXMsuM8aLj)JYxu2GtvHnUacMvQgBFwmRuaG5dliyKY0(J1qMt7pePpjvuzsb6IZPQxElm7v71PQLljRKEYkL58V0CEEH1CdIj(y0nlyZnWJQLpI5CNv94zbrrv50xMuvOvoNhhv7cBIUtP8ytfMwoRbGGYkd(XfnRCLHbJBtZjcrlhHvAwKeT8RFKLp6vgcXgF)srldld91yzBgLOLJsnzmtmWxKVo7vqQ(dGTSoDlxQsu0WFA5GUyn8CdskeWmNyJLbGMcR(Ll0uykbAwv957jRH(CVanaUQ)2vH0hO9MljQHPiwZsOmr)5CI(fRdbkc7e549lhrHBy2eGp4gbngAfnwZUPRCZlzT5ZA2S(u6fw6l)9)27F(t)cwFKbbisiJ10QPPDHTLLrGXip1y(CyixyVaG(dTlK1vNJjH28Le0yl63I(t65x09iz1N49G5kSPfXyb8n2fb2tzQk(r8mSUv)Xo2RD)j06pvxZWYwqDkKz)ifUbLyd6XV5UEYRaAyfmd05LUaX5yOoLovWZz)OeQCVavkQaf2Gy(fvdn1Jxf42PUJPNjOQ)OQfT9j7R)eettY2x)WoYoMDcMOZ6oahR3tRJXJMzqGFzbvaNpf6TPATUb7SC5G2SwUSFmM6DR9UdtxX9uO52eHtpxKcIMyRSSS3tdZsLFT9MOCxzXIMzbQBsNHEITqevshYi3j2HBKf3SgWApu(OwXCP0JygtG3TFmSeR4AwPke15wlh8vm6HA2eK5HYagr9hbofMh8M2TURr)gsn62O2Dn(317l3Twx538pO(dQn(T7caihjypdnrvH()JreaakFWF4zCbYuhrDiYeGGaOllZLdoaEkdUuv7TrlbByhgssic)4tHnwGxzt0qtkgwzWv1R192pl14MBPD1)4nhazVdmB6JRSQyD6bDu)g(5E0FOKEBH0GPmOdWuL6vJ02muI23qHVleffS7jjFortEp1X(NI01XA02ZcC9WXv53tff72g2DJIpOJ2RDO2qXPy(AG)WdjySbj26lhiJ1hD5uKvtSPjGmCWB6cx3Fy5Gfg2hUCW96wQAlhOJ)b1oRvNHbuRHlWhsrVEt7AD6(T382)j1CT7cFg5WAJTWKdo9WkWhp2wNfmTdElZ8TreRfn0hBC4Dy0Jy2)K(jWVoGaksniLzgyZXw9X)q1AiYYcE1su2xzR91XoBPDUo48nA8U2zbVRWkYIsV7jbC1sV751m8wrKvPCR7AfCXNfkunFeTyY37iMBk4hy7JbyKDwSmYCX2SKNJvurAQ)eXWIUbhClV93(TQlhWArehTCaLzs1DcLSv6jxDXcJhSFOV5tgKr9FAklKKIeyq4XSmfyW2e1zWjlGulJvGtEFOtRQqj3FKje2Lpt4oYgWLVKmgDT(0LWl1sQU7QA1qM0lJRwGVpowEwQFibbi70(xLGpOi7trLPHQORyJsgzynTpRB8KEC8k9g3zHITzagzmxzWlnn)HreyNfFx8E5GrQM0OeG00w(7VhPmhaNgnYKgfTQWggsB(r06ac(NvQamRSjeSo8HsgKzWN97VFvfrT5P1ILblj0maaYPRBhyNNyX36P3Gx5CXqWODMiMOu(dBSnEeavRP1JwOIIyNqEX(c7hQxd770hfX9mRkMXCGhLqCI4hjjvD4QiCTTl9ztpWnmKOed6xIyvnBjfUMAdJv5nWHueRRQ)8xucGiUQZ9nUQN0j04yCdaQDk8hTK(mTHfl3U2D1UQHeTLtk3UtJ6YaekSUpx4p4rlx4pQR0lVsb9uFeM(p2C3xLV6)8TcYnp2CcKhV5SCZsFZRd8E)mpZlfDV7qOC5yAb7lRPj9uemLXMF(SfJrz(LTVmWTPaf3X0dvZf2cOymBiIfQ5yAyNeKIVzoCBykj7)XgKjyhNVN2xFruOPEYmvp8owdj)iM9re8d8dwMoWXJcaoEKxWXoytQeeHHOzmXWMkF9DIOpmbavnT(BaGy8yWUNd5d8yK864307IE6O9eAKdIqIpp6mKnk1vfb8Gm(Qh)3T5p9qgMaDlcqKo9jK5(lE6NhUabMWFvLcTSIN9ToERVydIu0EAb3(c6iRnNFeZ4j8TDbDupEjtdOXPPXlJADQ14Q9tc18JhYrlJPmtAPNSNhur3eQ1bP63kmwBHFHAfgapIviB8FhyBHL5Ks7Gb)BfJL)Y2uj4deTr(KjG8f2(0elFmV(qTYae(Uf2IoRNN1XXeKx8uIJjZY8P7YLXdVL(TbaA7PuFeLxkDKhBWWvq8EX3ojwh779Bso0o2nhAvDYH2XPkhA(YNvcyq5rUZYfWiNCOD8QCOrvJL8d4fdv1hrJtvJR7(URRgYlz)yraqkVslvQ1iiV32Ou09K6wVbQk3sY0MTIx(GvPNOqj8d8a5k3ZE3c)WKXw)wD6hahI1TAIhhkAf9MdWqbz)NPwkZgGzTViHfvrC5yVgb)eHIt4MGADKFuRJsfQ1Mwny5b6voO8JJIg1kcj3iATBSNw0d)Ww(cq89rKdnNCKbFW6KCb4EPkhx56mk7cCzH4P7tz4HKsp)jI5t1FlckNFP6k9R5OibZ(48UPS2h4VQS0f1yrwByGkh7ekbaPJCmRJTo41kzlcuV(RRSfP(AGyuU8GIn14rmrbzAvxNk1MrurNqWtS1qKvBjylc7rvyYaZEY1K(weDrQvFBh5(rZPQ3HZFHvW5WRuuSCXD13svpwUrJSeUI(kenR6pPoBwY4YLWvKMgJsQia3DWvunFlDSWgMb7XC3OYSRuqXmvtL(dXiII9WHeQOnfsC8u3T7z1mYA4tpFGlsRxpo5fUontntNVzuwxufP6IIpfaUrPK)YpZqEy2Ieqs3SmBfPuiwc6kqSv4J3lc5HNn3eUCv9hfVD8Yx5hwNG0GOlkx6yhd0iv0G8J0is1bhD6C8iYpkgWAiar8QPub64RiL3uVy3hmvITNqaEZVgkHxHesJdSCRYFwVTI6XdlC8W(0uUqxOO1mM4drKUjJfAsMOwVTyMkXwe8j)I(vgaxlqakXNLPO7MACbm4lbuElS5fgKdRKHpM5fg(u3WPI1pCz1zv8vE1Xbex(jvwoOL2OTtvx5zh)sQIRookD9JitWwS6DTiUOfHGmzb2ypbz(6vI7BCjpXtTXc1NGEEj3BrWT0bMNzMvVoqctF4b5VklUcamJ1DbZvDTW(mlbkQeZilcteYhovyNSWBH4YGeEUaGkY1U0xCmQlNkxoEe1tcGOE2ke1ikvRCOCGpjcWj(zCj6YDI7JrBf2tBhOGm(eFcAbqmogcuCS8wOQayZ8NAidtEUfrsYpAsPFA1celjbc7g3vjKoWzryAVbkTJFe14Lo6G7bV5BgoqIyX20dp)(uXXH9PIyDkDAKZSwo4p)xW9atmn95FpnzaYtozAWIghCuLqS4Ai9L(nPja6pSPfWRHEte5bHta0MRrUOcIO34WXff3tPgf)cCBARHMIxe0oU2tumCTyHeRaj3XSRQJ2DyE55hifrE1xoDZQ8Ia5idiJfiOJ0xxy8x7a31dMRYVCdGz4R7O8gMHMEbkJhMlpKmJNtJVUJ4qD4u)uhoHAdsDnitMImTYK)hfgWOn2QMLfs5bQcXeXu(2alnItoO8yDeH8eIvNTrP9TtZrMo7jiPTdvhU8iIVEJYnUmzLUf3PAez2QWviRygYDjCLSoEcAx0y1F1W0z3dbXcxFqMomxDiFCDO)wYEY35ay0Tu7BJ8xdOiNZ1ifHDscKJ)d4CNQBReLTWAuiCFYnfMkuwN3FhanXhRNla6luWN0rERmFnCQp2myDHP1JHkI5y2BwEoLvFqhh2qgIjUBSszT1W)lwXs9rCxywKhWKRjOz4dVfJgHjnX62h2uvxDM6pXoTS3pDjTJ)EqQQKvpenU0qtdnN21MyXEdyy58RlSIe(GWeMY)40DhxYNhvK7izSxS4NDQUMi1csqezM3AIHqKnIxJbqKMlwEUjn)OmUEgVTijRsCowc6VH6gPESy3gs9VPtR7B3prFGi9jqtKvfTHwXABK(iQ3QM8RCRhLJDSsrEy2QGd5OgDR3moJiFJtTJu1kNx5dNLKFENMqP9mYWQUmynBlJNJi3MN6ipiCDOGRk2MwgZwoGTDFSyQ8sK(Yl9MyUyvcsrr0aPFoHT4S85NMbEDK5N4ZdRecMev17KOo1WQii6PdlL76a4i6AywWaLP(qp56puDNhqKaWo39BhDzQZxvcbQZNQNY807Jz(DW2evj5zT3fkiiA8hwb(4hylI(zHxfe8oEmtQEQqAiiMND3pbnRe1XT835hvtUZaSnN(5fbQt6bvlqYnidqN8PlK9i1UXAiO9D1(w9ory8jpJP4XkvwhgoN6(W0svt1AHR3PWtPAUsi4epUsGC763DNqCvKQEC1t(WjRcUZ96QwSws7LitlAk853dzztP))3ExnnN2War)VKljxskP1XqtNCibAlmn0Kzmx6KuBRyeGgST8izdLl(3E3DnqczCSPKpQdd3ikgTwYgT6T7tV95Hvj)ky0RjwLB3HvXBzAzFrzBZwdbN38LvFx414zSGBvYTXtwhOE)Hv51vsT2aSku9DWGeLGvQnFprUxq5bl1TLqZdX3qqMLL101kjXCzuMJ2GYi0dPaDmpi1TPmCcxPfsajAbojQxZreQ9uIiKi0orIHb8Wyh4MHZw3sg78IINsLerUdxRcTxzKI(SsH0ywBliBl)InuwrY2Yc9aTSQgXLx18TlNlVyCKBnarTorOPCKw7Y5IFSiYFEnkUcQ92vksB3ojGvscxYUKLzBXGuJG1XxdLNFFPhwBxNK6Eg43rgicL6wxCZErk5aHpxV3VVzVw8bSe)y8J6rYPDXSw0J)hOHVS4BgkbFutG)CExCQfpgaHD)1EWKnIBapD9sOYHwIMwsDXjMuxCS)H2I(8vYUZszClRinuOyUv(cs)Fc7gv6uloP74v8pL093kWtVyhXNsjLw5rlP8iUS5leTd80BgNPlqdDKHJF8w3QWz5PQHCYKyTMbPIbRT3SiLim(G9)bFwQlU8iSESqN6ovQgdaNoA)TDFq0aVhxtR(USKa19R9o)WmxoF(9ym725YjtlGkwIJ35YPuvGEBpEDxUZLZ9YLF5hcOhtSatuzQHgPkhokFyzQQFFHg9Y3XdJvwh8GNmG5XVTtZR(P1TwyubCAl9N5yflfEcDGTvilGBB1ffTGttD)opKReERirCZRo5zvUHsncjh1mLso1pjALUhpdQrPUzKWwNNjYuB7snXIYdKsomH7OjhPo3rIQt2ObgO8(GLOIm3dOx(8rcj(QK0ou40fZBKGpHtbreMfPGkou63Nh6lJtGbqMXopH(xPUTX5W8ShP8E0b(Tq7fJ8hhw30zQWVpE4jMBaa9yE96jyVshBRc7vr4eh6zselIRIatWgYRDmB5TFZRZR3jERq0WV45O7Omx6aieucPYrX8P1(9uZwyGMJyaiZUCTgmCEMQoAkI3LRLPeZMjhNm2rd7uQVZ0rcm2UlFU7b4zNkI9gLNLWaCdZLldM8XhzEKj8LbyW47kW9DN(WpKmbSxyBepyPwmSTKuuLjH6tgc7DPfQ06xa73tkXGePXOfhGNZagrD25F8AP2(B1)OrJ6Mnm)u9gnmAuZ0EWHgNyBncHCNLmxR78Hhm(cyZq9OgS)7

commented

I just skimmed through your code and it seems this will be more than a couple of lines, so probably better forget my suggestion to quickly post the diff here ;)

commented

I had a quick look through some other addons and can't really find a difference in how this works. I added support for the META key as soon as it was available on the beta, but since I don't have a Mac I was never able to test it properly.

I can try changing the META- to CMD- on Mac clients to see if that solves the issue, but other than that I would need to somehow investigate more.

commented

Hm, worth a try, but I don’t think it’s that, since currently it already works – as long as there are no other modifiers in the binding.

If it’s just a line or two you are going to change for the CMD, you can also tell me the lines (or post the contextual diff here), so I can test it without you having to generate a new release.

Thank you. I will try to find out more on my side too, if it doesn’t work.

commented

Seems I found it:

In your AceGUIWidget-ClickedKeybinding patch you got the order wrong. You have the meta key last, but it must be first, like this (around line 50):

			if ignoreKeys[keyPressed] then
				return
			end

			if IsMetaKeyDown ~= nil and IsMetaKeyDown() then
				keyPressed = "META-" .. keyPressed
			end

			if IsShiftKeyDown() then
				keyPressed = "SHIFT-" .. keyPressed
			end

			if IsControlKeyDown() then
				keyPressed = "CTRL-" .. keyPressed
			end

			if IsAltKeyDown() then
				keyPressed = "ALT-" .. keyPressed
			end

This is the inverse order of how the binding text appears in the native client keybindings:

WoWScrnShot_111221_141221

…and in Clicked after the change too:

WoWScrnShot_111221_141301

But this is not cosmetic, the order seems to be mandatory to make combos of Cmd and other modifiers work.


For a correct UI appearance one could also change the displayed key name from “META” to “CMD”, but this is not crucial.

commented

Oh, interesting. I did not expect the order to affect functionality. I'll get this in a release this evening, and see how simple a visual change for CMD is. Thank you! :)

commented

Oh, interesting. I did not expect the order to affect functionality.

Indeed, me neither. And it’s not a thing of the meta key. If I comment out the meta key and mess up the order of the others, then they stop working too, if 1) at least two modifier keys and 2) any out-of-order key is part of the combo. (At least on the Mac.)

commented

I did push a new release out which should include your fix and it should visualize META- as CMD- on Mac (only visualize, it still uses META- to bind).

Let me know if something doesn't work as expected :)

Thank you!