[Blizzard issue] Blizzard Click Binding Conflict [state: cannot be fixed due to Blizzard API limitation] #218


  • Can't Fix
Open
Assigned to archarodim
  • Steelclover created this issue Apr 29, 2022

    Hi, lets say we have Rejuvenation Clickbinded through Blizzards Clickbinding to the left Mouse Button.

     

    If you now use the LeftMouseButton on DecursiveFrame it will cast Rejuvenation instead of dispelling it.

    This Behavior does not occur when using Clique instead of Blizzards ClickBinding.

     

    Is there anything we can do about it?

     

    *waves Coviac

     

  • Damigos posted a comment May 10, 2022

    I have the exact same problem.

    I can see the units but when i click them, instead of casting cleanse i am casting flash light.

     

  • Damigos posted a comment May 16, 2022

    Still no solution i see

  • archarodim posted a comment May 31, 2022

    I have not been playing the game for quite some time, I was not aware of this new blizzard click casting thing... https://news.blizzard.com/en-us/world-of-warcraft/23783586/enhance-your-gameplay-more-accessibility-updates-available 

     

    I'll take a look as soon as I have some time. :-/

  • archarodim self-assigned this issue May 31, 2022
  • archarodim added a tag Defect May 31, 2022
  • Thelorius posted a comment Sep 9, 2022

    any updates on this? its pretty much unusable at this point, because i have to change keybinding in decursive to make iot work, but then i can use blizz clickcast functionality to decursive ppl fast. no need for decursive at this point.

  • archarodim posted a comment Sep 27, 2022

    You need to use modifiers (alt, shift, ctrl) in either Decursive or Blizzard click casting. That's bad design on Blizzard's part, they could have checked if a UI element already has some non-default mouse binding associated to it before applying their click-binding-interface ones but chose not to spend 1 hour or 2 to do so and thus, makes you, me and countless other people waste their time instead... (they took the easy/I-don't-care path)

     

    The click binding feature is implemented as an override of everything else, so there is no way to prevent it from being triggered, it applies to any "secure button" (ie: any unit frame).

     

    The Blizzard code responsible for this can be found in FramXML/SecureTemplate.lua:

     

    function SecureUnitButton_OnClick(self, button)
        local modifiers = C_ClickBindings.MakeModifiers();
        local bindingType = C_ClickBindings.GetBindingType(button, modifiers);
        if ( (bindingType == Enum.ClickBindingType.Spell) or (bindingType == Enum.ClickBindingType.Macro) ) then
            local unit = SecureButton_GetModifiedUnit(self);
            C_ClickBindings.ExecuteBinding(unit, button, modifiers);
        else
            local effectiveButton = (bindingType == Enum.ClickBindingType.Interaction) and C_ClickBindings.GetEffectiveInteractionButton(button, modifiers) or button;
            local type = SecureButton_GetModifiedAttribute(self, "type", effectiveButton);
            if ( type == "menu" or type == "togglemenu" ) then
                if ( SpellIsTargeting() ) then
                    SpellStopTargeting();
                    return;
                end
            end
            SecureActionButton_OnClick(self, effectiveButton);
        end
    end

    So the above function first checks if there is a binding associated to the button through the click binding interface and executes it, if there is none, then, and only then, it will execute the actual actions associated to it...

     

    If someone knows of any other add-ons that managed to circumvent this, I would be interested so I could check how they did it but it seems impossible.


    Edited Sep 27, 2022
  • archarodim edited title Apr 7, 2023
  • archarodim edited title Apr 7, 2023
  • archarodim removed a tag Defect Sep 2, 2023
  • archarodim added a tag Other Sep 2, 2023
  • archarodim added a tag Can't Fix Sep 2, 2023
  • archarodim removed a tag Other Sep 2, 2023

To post a comment, please login or register a new account.