forked from Ports/goldeneye-pc-port
fix(D196): re-hide the OS cursor after the F10 options overlay closes
inputSuspendForOverlay() forces the OS cursor visible while the overlay is open; on close nothing re-hid it unless reconcileGrab() happened to re-grab (only true if the user had already clicked-to-lock in a stage). Opening the overlay from a menu, or from a stage not yet click-locked, left the cursor stuck visible over the game's own crosshair. Fix: re-assert applyCursorVisibility() once per controller-0 poll, right after reconcileGrab(). Unreachable while the overlay is open (early return above), so it only fires once the overlay has closed and self-heals every poll thereafter. Port-only, no render change; verify.sh bunker1 PASS. Owed: 5-second visual check - open F10 from a menu, close it, cursor gone.
This commit is contained in:
1 parent
97a09665a1
commit
a17d5466ae
1 file changed
+7
@@ -520,6 +520,13 @@ unsigned inputComputePad(int idx, signed char *stick_x, signed char *stick_y)
|
||||
current_menu != GE_MENU_INVALID);
|
||||
|
||||
reconcileGrab(menuMode);
|
||||
/* D196: the F10 options overlay forces the OS cursor visible via
|
||||
* inputSuspendForOverlay() but nothing re-hides it on close unless
|
||||
* reconcileGrab() happens to re-grab (only true if you had already
|
||||
* clicked-to-lock in a stage). Re-assert the correct visibility
|
||||
* every poll here -- this line is unreachable while the overlay is
|
||||
* open (early return above), so it only fires once it has closed. */
|
||||
applyCursorVisibility();
|
||||
|
||||
/* Click-to-lock, in a stage, cursor free: the mouse buttons must not
|
||||
* reach the game (no phantom fire) -- the first click only re-locks
|
||||
|
||||
Reference in new issue
Block a user