#4125·primitives

Select, HoverCard, Tooltip and NavigationMenu don't get the deferPointerDownOutside fix that Dialog/Popover got in #3928

Author: MILLERMARRUCreated Aug 21, 2026Updated Aug 21, 2026

PR #3928 added a deferPointerDownOutside prop to DismissableLayer and wired it into Dialog.Content and Popover.Content, so a pointerdown that lands outside the layer waits for the corresponding click before dismissing. This gives third-party UI injected by browser extensions (password managers, Grammarly, etc.) a chance to intercept the event, fixing #2055.

I checked every other primitive built on DismissableLayer and none of them received the same fix:

  • select.tsx:858
  • hover-card.tsx:332
  • tooltip.tsx:555
  • navigation-menu.tsx:1006

None of these pass deferPointerDownOutside to their DismissableLayer, so a pointerdown from extension UI still dismisses them immediately, same symptom as #2055 but for these components instead of Dialog.

I believe this is related to #2502 (HoverCard closing on Chrome autofill, closed as "Needs More Information") and #3175 (Select closing a nested HoverCard, still open) - both look like the same missing-defer root cause rather than being fixed already.

Note: Menu (DropdownMenu/ContextMenu/Menubar) has the same gap, but PR #3976 already adds deferPointerDownOutside there, so I'm leaving that one out of this report.

Expected: Select, HoverCard, Tooltip and NavigationMenu should get the same deferPointerDownOutside treatment as Dialog/Popover/Menu(#3976).