@@ -312,23 +312,22 @@ function useAdvancedMarker(props: AdvancedMarkerProps) {
312312 // maps api (as of 2024-10-10)
313313 marker . gmpClickable = gmpClickable ;
314314
315- // enable pointer events for the markers with custom content
316- if ( gmpClickable && marker ?. content && isElementNode ( marker . content ) ) {
317- marker . content . style . pointerEvents = 'all' ;
318-
319- if ( onClick ) {
320- marker . content . style . cursor = 'pointer' ;
321- }
315+ // keep pointer/cursor styles in sync for markers with custom content.
316+ // Non-clickable custom HTML must disable pointer targeting explicitly so
317+ // interactions fall through to the map underneath.
318+ if ( marker ?. content && isElementNode ( marker . content ) ) {
319+ marker . content . style . pointerEvents = gmpClickable ? 'all' : 'none' ;
320+ marker . content . style . cursor = gmpClickable && onClick ? 'pointer' : '' ;
322321 }
323322 } , [ marker , clickable , onClick , onMouseEnter , onMouseLeave ] ) ;
324323
325- useMapsEventListener ( marker , 'click' , onClick ) ;
326324 useMapsEventListener ( marker , 'drag' , onDrag ) ;
327325 useMapsEventListener ( marker , 'dragstart' , onDragStart ) ;
328326 useMapsEventListener ( marker , 'dragend' , onDragEnd ) ;
329327
330- useDomEventListener ( marker ?. element , 'mouseenter' , onMouseEnter ) ;
331- useDomEventListener ( marker ?. element , 'mouseleave' , onMouseLeave ) ;
328+ useDomEventListener ( marker , 'gmp-click' , onClick ) ;
329+ useDomEventListener ( marker , 'mouseenter' , onMouseEnter ) ;
330+ useDomEventListener ( marker , 'mouseleave' , onMouseLeave ) ;
332331
333332 return [ marker , contentContainer ] as const ;
334333}
0 commit comments