From 397a0a1937ad1461fd1d23d3b93713d21669c884 Mon Sep 17 00:00:00 2001 From: Masashi Katsumata Date: Sun, 8 Nov 2026 19:52:13 -0800 Subject: [PATCH 1/3] Point js-sdk-core and react-for-deckgl at the marker click fix js-sdk-core fix/marker-drag-click-leak (a3443c7): the click that ends a marker gesture no longer reaches the map, a tap on a draggable marker is delivered once, and a clickable: false marker passes the tap through to what is under it, as on Android. react-for-deckgl fix/marker-drag-click-leak (d33041b): deck.gl skips the tap the core already delivered. Both are local branches; repoint these at the merge commits before this goes up. --- js-sdk-core | 2 +- react-for-deckgl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js-sdk-core b/js-sdk-core index 282b8fb..a3443c7 160000 --- a/js-sdk-core +++ b/js-sdk-core @@ -1 +1 @@ -Subproject commit 282b8fba6bdfbb4c06527fc8a46cd475318b73f1 +Subproject commit a3443c779327a9edf51d1b503c9850ff35448aad diff --git a/react-for-deckgl b/react-for-deckgl index 67e882f..d33041b 160000 --- a/react-for-deckgl +++ b/react-for-deckgl @@ -1 +1 @@ -Subproject commit 67e882f08d444604df80c560a9477b18197faeb4 +Subproject commit d33041b1a029f1ca6fb2ee9f345c50113a810096 From 4c390df9b639aa757529266b2dc1bf427110a459 Mon Sep 17 00:00:00 2001 From: Masashi Katsumata Date: Sun, 8 Nov 2026 19:52:13 -0800 Subject: [PATCH 2/3] CirclePage: drop the circle-click suppression after a marker drag The sample ignored circle clicks for 300 ms after the edge marker's onDragEnd, because releasing the dragged marker over the circle clicked the circle on the GL providers. js-sdk-core now keeps that click off the map, so the workaround is no longer needed. --- examples/basic/src/pages/CirclePage.tsx | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/examples/basic/src/pages/CirclePage.tsx b/examples/basic/src/pages/CirclePage.tsx index d0ec173..cfa680f 100644 --- a/examples/basic/src/pages/CirclePage.tsx +++ b/examples/basic/src/pages/CirclePage.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; import { ColorDefaultIcon, Planar, @@ -20,7 +20,6 @@ import { useSampleI18n } from '../samples/i18n'; const CIRCLE_CENTER = createGeoPoint({ latitude: 21.382314, longitude: -157.933097 }); const INIT_CAMERA = { lat: CIRCLE_CENTER.latitude, lng: CIRCLE_CENTER.longitude, zoom: 3 }; const INITIAL_RADIUS_METERS = 5000000.0; -const SUPPRESS_CIRCLE_CLICK_AFTER_MARKER_DRAG_MS = 300; const CIRCLE_COLORS = ['#0000ff', '#ff0000', '#008000', '#00ffff', '#d3d3d3', '#ff00ff']; function rgba(hex: string, alpha: number): string { @@ -57,7 +56,6 @@ export function CirclePage() { const [strokeWidth, setStrokeWidth] = useState(3); const [labelOffset, setLabelOffset] = useState(null); const [cameraTick, setCameraTick] = useState(0); - const suppressCircleClickUntilRef = useRef(0); const { messages, showToast, dismissToast } = useToast(); const radius = useMemo( () => Spherical.computeDistanceBetween(CIRCLE_CENTER, edgePosition), @@ -87,12 +85,6 @@ export function CirclePage() { setEdgePosition(dragged.position); }, []); - const handleMarkerDragEnd = useCallback((dragged: MarkerState) => { - suppressCircleClickUntilRef.current = - Date.now() + SUPPRESS_CIRCLE_CLICK_AFTER_MARKER_DRAG_MS; - setEdgePosition(dragged.position); - }, []); - const circleState = useMemo( () => createCircleState({ @@ -106,7 +98,6 @@ export function CirclePage() { geodesic: true, clickable: true, onClick: () => { - if (Date.now() < suppressCircleClickUntilRef.current) return; setColorIndex((index) => (index + 1) % CIRCLE_COLORS.length); showToast(`Circle clicked - Radius: ${radius.toFixed(0)}m`); }, @@ -152,7 +143,7 @@ export function CirclePage() { draggable onDragStart={handleMarkerMove} onDrag={handleMarkerMove} - onDragEnd={handleMarkerDragEnd} + onDragEnd={handleMarkerMove} /> {labelOffset && (
Date: Sun, 8 Nov 2026 21:18:20 -0800 Subject: [PATCH 3/3] Point js-sdk-core, react-for-deckgl and react-for-azuremaps at develop The marker click fix is merged in all three: - js-sdk-core#31 (3d2d349): swallow the click that ends a marker gesture, pass a clickable: false tap down the map's cascade, mark the pointerup; - react-for-deckgl#10 (c7b6c91): skip the tap the core already delivered; - react-for-azuremaps#14 (1f24e70): drag markers through the core's DefaultMarkerEventController (drag threshold, no click after release). --- js-sdk-core | 2 +- react-for-azuremaps | 2 +- react-for-deckgl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/js-sdk-core b/js-sdk-core index a3443c7..3d2d349 160000 --- a/js-sdk-core +++ b/js-sdk-core @@ -1 +1 @@ -Subproject commit a3443c779327a9edf51d1b503c9850ff35448aad +Subproject commit 3d2d3492000839c24060d90f258b1a74bcfb6581 diff --git a/react-for-azuremaps b/react-for-azuremaps index cff6182..1f24e70 160000 --- a/react-for-azuremaps +++ b/react-for-azuremaps @@ -1 +1 @@ -Subproject commit cff6182738eb1761201aeb78d1591d6d58f5290e +Subproject commit 1f24e704f0bdddcab8a10765a51d4a2b0f2d2e21 diff --git a/react-for-deckgl b/react-for-deckgl index d33041b..c7b6c91 160000 --- a/react-for-deckgl +++ b/react-for-deckgl @@ -1 +1 @@ -Subproject commit d33041b1a029f1ca6fb2ee9f345c50113a810096 +Subproject commit c7b6c910e082b36a9a700c56358c0f0b04b9da25