Add Reset Mouse Look keybind to recover the macOS stuck-cursor freeze#179
Add Reset Mouse Look keybind to recover the macOS stuck-cursor freeze#179deliro wants to merge 1 commit into
Conversation
110b91a to
8e92ad4
Compare
|
Thanks for the work on this, @deliro! I had no idea about the macOS issue. I'm not currently subscribed to the game, so I can't really test the proposed changes. The next time Blizzard breaks something that requires me to update the addon, I'll merge this and include it in the next release. |
|
Thanks again for this, @deliro. I finally dug into the diff properly. Happy to take:
Those look low-risk and useful on their own. Holding off on auto ResyncMouselookOnFocusRegain as written. The macOS stuck-capture problem sounds real, and I agree there’s no clean focus event to hook. But the current heuristic feels a bit broad for something that pulses raw
If you’re up for a follow-up, my preferred shape would be:
I’m fine merging the perf + manual-reset pieces first, then revisiting auto-recovery once tightened. Either way, thanks for chasing this. I didn’t know about the macOS capture desync before. |
|
I'll split this into two PRs: one for the performance improvements and one for the manual unstuck binding. I've been using this fix for a while now, since the automatic unstuck doesn't work at all. |
|
I see you've already merged the performance part. Then I'll keep only the manual binding. |
8e92ad4 to
e6429f7
Compare
| get = function() | ||
| return (GetBindingKey("Combat Mode - Reset Mouse Look")) | ||
| end, | ||
| }, |
There was a problem hiding this comment.
Can I get a screenshot showing how this new option sits on the config panel in-game, please? You might need to adjust the size/positioning of the other elements to make sure nothing is visually breaking/odd.
Might even be the case of adding a check to show this for the macOS client only, if possible, so we don’t run resync pulses on all clients by default.
e6429f7 to
f8224fc
Compare
|
macro for bug & fix reproduction: Requirements & steps:
|





Rescoped to just the manual recovery keybind:
loadstringcache,GetUIPanelshort-circuit,ipairs) already landed inmasterviarefactor: hot-path perf improvements/ 3.3.1 — dropped here.ResyncMouselookOnFocusRegainis dropped per review (broad heuristic, bypassed the free-look state machine, not platform-gated).What this adds —
Combat Mode - Reset Mouse LookA
MouselookStop()issued while the window is backgrounded (a watched panel auto-unlocks Mouse Look during an alt-tab — e.g. bags, LFG ready check) leaves the OS mouse capture stuck on macOS: on return the camera is frozen and the cursor is gone, whileIsMouselooking()no longer reflects reality.The keybind calls
MouselookStart()→ next-frameMouselookStop()to re-grab and cleanly release the capture, restoring the cursor.OnUpdatere-locks afterward if free look should still be active. It's also exposed in Settings → Mouse Look next to the other keybinds, with a tooltip explaining the recovery.Why not automatic: there is no window-focus event, and the background keeps rendering (background FPS), so the frozen state can't be detected from
OnUpdate. Keybinds still fire during the freeze, so a manual keypress is the only reliable recovery.🤖 Generated with Claude Code