From 7cfcd5cfc6c23e0e0f2dba31a6ec041104210f4e Mon Sep 17 00:00:00 2001 From: andrewwallacespeckle Date: Mon, 4 Aug 2025 13:27:06 +0100 Subject: [PATCH] Only scroll when external selection --- .../components/viewer/models/Panel.vue | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/frontend-2/components/viewer/models/Panel.vue b/packages/frontend-2/components/viewer/models/Panel.vue index f637eed66..fb34d5608 100644 --- a/packages/frontend-2/components/viewer/models/Panel.vue +++ b/packages/frontend-2/components/viewer/models/Panel.vue @@ -346,8 +346,8 @@ const scrollToSelectedItem = (objectId: string) => { // Debounced selection handler for better performance const handleSelectionChange = useDebounceFn( - (newSelection: typeof selectedObjects.value) => { - if (newSelection.length > 0 && !disableScrollOnNextSelection.value) { + (newSelection: typeof selectedObjects.value, shouldScroll: boolean) => { + if (newSelection.length > 0) { for (const selectedObj of newSelection) { for (const { model } of modelsAndVersionIds.value) { const modelRootNodes = getRootNodesForModel( @@ -372,8 +372,9 @@ const handleSelectionChange = useDebounceFn( manualExpandLevel.value = objectDepth } - // Scroll to the selected item - scrollToSelectedItem(selectedObj.id) + if (shouldScroll) { + scrollToSelectedItem(selectedObj.id) + } } } } @@ -382,5 +383,12 @@ const handleSelectionChange = useDebounceFn( 100 ) -watch(selectedObjects, handleSelectionChange, { deep: true }) +watch( + selectedObjects, + (newSelection) => { + const shouldScroll = !disableScrollOnNextSelection.value + handleSelectionChange(newSelection, shouldScroll) + }, + { deep: true } +)