-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle pointerlock rejections, if promise based #13487
Conversation
Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s). |
Snapshot stored with reference name: Test environment: To test a playground add it to the URL, for example: https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13487/merge/index.html#WGZLGJ#4600 Links to test babylon tools with this snapshot: https://playground.babylonjs.com/?snapshot=refs/pull/13487/merge To test the snapshot in the playground with a playground ID add it after the snapshot query string: https://playground.babylonjs.com/?snapshot=refs/pull/13487/merge#BCU1XR#0 |
Well, it fails in a pretty unrelated test. To be honest: no idea. Neither Anecdotal evidence: I've been doing this for months now and no Safari user ever complained. I mean, they complain quite a bit, just not about this specifically. :) It's not really important, this unhandled exception just kept bugging me. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No modern browser is synchronous anymore. Chrome/edge from 92, firefox and iOS as well.
Great catch :-)
Last I checked firefox still returns undefined, but maybe that changed since I last checked. :) |
This should get rid of the unhandled top-level exception if requesting pointer lock fails.
I think the intended way to use pointer lock in Babylon is to sub to
onCanvasBlurObservable
andonCanvasFocusObservable
, soelement.focus()
probably belongs into the resolved handler.The alternative would be to focus regardless, but this is probably not desired:
A good way to try this behaviour is to enter and exit pointerlock in quick succession on a chromium based browser.