How to let 2d gui block operation of 3d gui

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?

2 Likes