Actually I have over complicated my solution, there’s no need to override isPointerCaptured
:
You can just do:
const enable3DEvents = (enable) => {
manager.utilityLayer.pickingEnabled = enable;
};
const block3DEvents = (ctrl2d) => {
ctrl2d.onPointerEnterObservable.add(() => {
enable3DEvents(false);
});
ctrl2d.onPointerOutObservable.add(() => {
enable3DEvents(true);
});
};
Regarding your last problem, as @mawa is saying, why not simply reenabling 3D event handling in the onClose
button handler?