First PointerPick event is not emitted immediately after interacting with GUI control that is a pointerBlocker

What I did: In the following playground

(open up the js console to see the pointer pick event types being emitted).

  1. First click on the GUI control.
  2. Then click on the sphere.

What I see: In the js console I see the numbers 1 and 2. Which is: Pointer down then pointer up.

What I expect to see is the numbers: 1,16,32,2. Which is pointer down, pointer pick, pointer tap, pointer up. I also expect to see the gizmoManager on the sphere after one click. Instead, it will take two clicks after interacting with the GUI before the gizmoManager appears.

I’m pretty sure I did already read this somewhere in this forum before. Did you make a search?
It could even have been fixed and is now back.
Here’s to extend to your PG, visually demonstrating that i.e. pointerUp works as expected but pick does indeed not pick on the first click/hit for some reason.
Actually, the reason I could understand is that you first interact with the ADT layer and the first click returns you to the root (but does not pick).

Lemme take a look at this and see what’s going on.

So, as it turns out, there was a recent fix put in to address how swipe gestures were being recognized and when clicking on the GUI element, it will skip the part that resets the state so when you clicked on the sphere, it still thinks it’s swiping and doesn’t think that you’re clicking on it. I have a fix that I’m current testing so expect a PR for it to be created shortly.

PR is merged: InputManager: Reset Swipe Status if we skip the next Observable notify by PolygonalSun · Pull Request #13148 · BabylonJS/Babylon.js (


Amazing response time!