Gogo1951 / Groupie

A better LFG tool for Classic WoW.
MIT License
2 stars 3 forks source link

Set Focus and Inspect not working in raid frames #252

Open Pixelsnbeards opened 1 year ago

Pixelsnbeards commented 1 year ago

Everytime I try to Set Focus or Inspect by rightclicking a target in the standard raidframes it bugs.

There are 2 things that can happen, the first is that it just doesn't do anything. The second is that I get an error: "Groupie has been blocked from an actaion only available to the Blizzard UI. You can disable this addon and reload the UI.

When disabling the addon it works.

Gogo1951 commented 1 year ago

Oh, yeah that's a problem.

TannerShmoog commented 1 year ago

I suspect this was part of libraries needing updates, cant reproduce now

Road-block commented 1 year ago

It's not a library problem, I kinda mentioned this in some of the early (months) discussions.

Injecting entries into the unitpopup dropdowns (which are used for those protected calls: setfocus/inspect/target etc) taints them.

The problem will not appear for everyone (that's your "can't reproduce now" part) because simply injecting entries to the unitpopup menu is not enough to manifest the problem. Without going too technical if a user action has initialized the dropdown menu to a number of entries higher than the menus Groupie is injecting into before Groupie does its thing it will mostly be ok.

If Groupie's menu injection causes one of the UIDropdownMenu globals to be updated/written you will absolutely get action blocked errors.

From the player side if you're one of the "unlucky" ones facing the issue the only thing you can do is target the unit and /focus or /inspect, those will still work.

From the developer side you can [a] delay the injection until the first time a unitpopup menu you care about is shown and hope that the player has done other things (show a map dropdown or whatever) that has initialized the game dropdowns to a higher value. Not a guaranteed outcome but some kind of improvement. [b] avoid injecting entries to the unitpopup menu / use a different ux implementation.