From 732a8b6f8388510da09dbc51d6f06525d92db810 Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Thu, 10 Jun 2021 14:26:22 +0200 Subject: [PATCH] bugfix: race cond setting layer vis --- .../nehuba/nehubaViewer/nehubaViewer.component.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts b/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts index bf63d48d5..4d0b363f9 100644 --- a/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts +++ b/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts @@ -303,13 +303,15 @@ export class NehubaViewerUnit implements OnInit, OnDestroy { this.ondestroySubscriptions.push( this.layerVis$.pipe( switchMap(switchMapWaitFor({ condition: () => !!(this.nehubaViewer?.ngviewer) })), - tap(() => { - const managedLayers = this.nehubaViewer.ngviewer.layerManager.managedLayers - managedLayers.forEach(layer => layer.setVisible(false)) - }), debounceTime(160), ).subscribe((layerNames: string[]) => { - + /** + * debounce 160ms to set layer invisible etc + * on switch from freesurfer -> volumetric viewer, race con results in managed layer not necessarily setting layer visible correctly + */ + const managedLayers = this.nehubaViewer.ngviewer.layerManager.managedLayers + managedLayers.forEach(layer => layer.setVisible(false)) + for (const layerName of layerNames) { const layer = this.nehubaViewer.ngviewer.layerManager.getLayerByName(layerName) if (layer) { -- GitLab