MicrosoftEdge / MicrosoftEdge/WebView2Feedback
[Problem/Bug]: Gamepad and Pointer Lock APIs not working in visual or "Window to visual" hosting modes
Nobody has claimed this yet.
- Dominant language
- PowerShell
- Stars
- 526
- Forks
- 67
- PR merge metrics
- No merged PRs in 30d
Description
What happened?
When WebView2 is set to use "Window to visual" hosting mode, the Pointer Lock API no longer works correctly in web content.
This is a potential blocker for Construct migrating from NW.js to WebView2.
Importance
Important. My app's user experience is significantly compromised.
Runtime Channel
Stable release (WebView2 Runtime)
Runtime Version
131.0.2903.70
SDK Version
1.0.2903.40
Framework
Win32
Operating System
Windows 11
OS Version
22631.4460
Repro steps
For a minimal repro, use the Win32_GettingStarted sample, and make the following changes:
- Add the following line before
CreateCoreWebView2EnvironmentWithOptions()to set "Window to visual" hosting mode:
SetEnvironmentVariable(L"COREWEBVIEW2_FORCED_HOSTING_MODE", L"COREWEBVIEW2_HOSTING_MODE_WINDOW_TO_VISUAL");
- Change the URL in the call to
webview->Navigate(...)to: https://downloads.scirra.com/labs/bugs/pointerlocktest.html
Now run the app and click 'Get pointer lock'.
Observed result: the mouse cursor remains visible, and the page does not update with any more pointermove events. Further, the notification saying "to show your cursor, press Esc" appears offset, sometimes outside the window (ideally we would hide this notification as it's not applicable to desktop software - see #4960). Further, after pressing Esc pointer events don't seem to restart again, leaving the app in a stuck state.
Expected result: pointer lock to work normally as it does in a web browser, or in the standard windowed hosting mode. Comment out the line added in step 1 to use windowed hosting mode, and you'll see it works correctly.
Repros in Edge Browser
No, issue does not reproduce in the corresponding Edge version
Regression
No, this never worked
Last working version (if regression)
No response
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.