From f72731c1da5b44d86d90e311ea4bfb6a8a8d97a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie=20Wahlstr=C3=B8m?= Date: Wed, 8 Oct 2025 14:01:43 +0200 Subject: [PATCH] feat: :adhesive_bandage: Prevent multiple clicks on cloud icon for smooth elevation control --- src/ElevationControl/elevationControl.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ElevationControl/elevationControl.js b/src/ElevationControl/elevationControl.js index c4f28ae..f0b59c3 100644 --- a/src/ElevationControl/elevationControl.js +++ b/src/ElevationControl/elevationControl.js @@ -49,6 +49,17 @@ function autoSelectFirstPointCloud() { return false } +function disableFirstPointCloudNode() { + // find the
  • that holds the first cloud icon + const icon = document.querySelector('#scene_objects i.jstree-themeicon-custom') + const li = icon ? icon.closest('li') : null; + if (!li) return; + //visually/DOM disable anchor clicks + const a = li.querySelector('a'); + if (a) a.style.pointerEvents = 'none' +} + + //(re)connect the elevation labels to the slider after the container is moved (was not handled by default) function rebindElevationLabel() { const slider = window.jQuery ? window.jQuery('#sldHeightRange') : null @@ -109,5 +120,8 @@ export function initElevationControls(viewer) { observer.observe(menu, { childList: true, subtree: true }) //Trigger Potree to build Materials UI by selecting the first point cloud (if nothing selected yet) - autoSelectFirstPointCloud() + if (autoSelectFirstPointCloud()) { + //Prevent multiple clicks on the cloud icon + disableFirstPointCloudNode(); + } }