diff --git a/Sources/Interaction/Manipulators/MouseRangeManipulator/index.js b/Sources/Interaction/Manipulators/MouseRangeManipulator/index.js index 261257b6687..7f70dff74d7 100644 --- a/Sources/Interaction/Manipulators/MouseRangeManipulator/index.js +++ b/Sources/Interaction/Manipulators/MouseRangeManipulator/index.js @@ -256,8 +256,9 @@ function vtkMouseRangeManipulator(publicAPI, model) { // we don't interfere with other events such as doubleClick, // for this reason we don't call this from `onButtonDown` if (model.usePointerLock && !interactor.isPointerLocked()) { - interactor.requestPointerLock(); - publicAPI.startPointerLockEvent(interactor, renderer); + Promise.resolve(interactor.requestPointerLock()).then(() => { + publicAPI.startPointerLockEvent(interactor, renderer); + }); } if (!position) { diff --git a/Sources/Rendering/Core/RenderWindowInteractor/index.d.ts b/Sources/Rendering/Core/RenderWindowInteractor/index.d.ts index 04ea0120245..f605ed8867c 100755 --- a/Sources/Rendering/Core/RenderWindowInteractor/index.d.ts +++ b/Sources/Rendering/Core/RenderWindowInteractor/index.d.ts @@ -1198,7 +1198,7 @@ export interface vtkRenderWindowInteractor extends vtkObject { /** * */ - requestPointerLock(): void; + requestPointerLock(): Promise | undefined; /** * diff --git a/Sources/Rendering/Core/RenderWindowInteractor/index.js b/Sources/Rendering/Core/RenderWindowInteractor/index.js index 56c829e43b9..3d2b1fbed98 100644 --- a/Sources/Rendering/Core/RenderWindowInteractor/index.js +++ b/Sources/Rendering/Core/RenderWindowInteractor/index.js @@ -480,8 +480,9 @@ function vtkRenderWindowInteractor(publicAPI, model) { //---------------------------------------------------------------------- publicAPI.requestPointerLock = () => { if (model.container) { - model.container.requestPointerLock(); + return model.container.requestPointerLock(); } + return undefined; }; //----------------------------------------------------------------------