Short version - I made a Weakaura (Link to Wago.io below) to test this and when the 4-way arrow starts showing up, the CVar values do not update at all and standard CVar events do not fire. Whatever is happening is outside the scope of CVars, it seems.
Long version:
So, I’ve been watching this thread for a while because this has been happening to me. I was curious after reading your post, Jambrix, so I tested some of this by setting the CVar via the SetCVar API with /run SetCVar("MouseNoRepositioning",1)
(And 0). Sure enough, the 4-way arrow does respect this setting, and this lets me manually swap between the behavior.
HOWEVER - The issue from the OP is that this happens seemingly randomly, which is what has been happening to me. When the issue happens on its own, without manually setting the CVar, it does not respect the CVar. Once the 4-way arrow starts showing up from “It” happening (whatever event it is), there is no way to make it go away without completely restarting the client.
Curious about the CVar’s behavior, I made a little Weakaura to troubleshoot.
This Weakaura is always active, and it will always display the currently acquired CVar value for the “NoMouseRepositioning” CVar.
It also spits out debugging information whenever the value changes. I am watching for the CVAR_UPDATE event, with a CVar name of NoMouseRepositioning. Additionally, it has an OnUpdate event tracker that is checking for value changes every frame.
When I debug with /run SetCVar("MouseNoRepositioning",1)
, the Weakaura properly prints to the chat window that a change has occurred, and the value on screen updates, printing once for the OnUpdate check and once for the CVAR_UPDATE event, both are caught. Good so far.
When I log in with the Weakaura, it says that the value is 0 on login. Again, this aligns with expected behavior. After playing for ~30 minutes this morning with the Weakaura running, the 4-way arrow started to show up on its own again, as has happened to me before and most others in this thread.
Crucially, the Weakaura did not print any events. CVAR_UPDATE did not fire. The CVar value itself from GetCVar is 0, despite the 4-way arrow appearing. So whatever is happening, it seems to be happening outside of the game layer, or outside the scope of CVars for the client session.
I uploaded the Weakaura here: https://wago.io/8eIusgp9Q
I hope this helps in your investigation, Jambrix, and anyone else from the Blizzard team. Feel free to take and modify for further troubleshooting. You should be able to add in other CVar checks if you need (If you all feel comfortable using WA for debugging, but if you don’t the overall structure is pretty straightforward and could be mocked up without WA, WA just makes it much easier and quicker to construct, IMO.)
Other players feel free to try and confirm the behavior. This Weakaura does use an Every-Frame update so I advise disabling it before doing any group content as I intentionally skipped performance optimizations. It’s just to confirm the CVar behavior.
Akinilke - I have not yet tried your workaround, I only just now saw your comment, I will try this as well to confirm.