From f2eb097a5e84eb554536e28d413d0dfd7730414a Mon Sep 17 00:00:00 2001 From: Tom Clarke Date: Thu, 15 Aug 2024 15:30:31 +0100 Subject: [PATCH] fix: zoom does not update waveforms --- src/Renderer/UI/Update.fs | 4 +++- src/Renderer/UI/WaveSim/WaveSim.fs | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Renderer/UI/Update.fs b/src/Renderer/UI/Update.fs index 22439e856..0662573ba 100644 --- a/src/Renderer/UI/Update.fs +++ b/src/Renderer/UI/Update.fs @@ -82,7 +82,9 @@ let update (msg : Msg) oldModel = |> Optic.map waveSim_ (fun ws -> let wsModel = ws[sheet] Map.add sheet (WaveSimNavigation.changeMultiplier (table[key]) wsModel) ws) - |> (fun m -> m, Cmd.none) + |> (fun model -> WaveSim.refreshWaveSim true (getWSModel model) model) + + | CheckMemory -> if JSHelpers.loggingMemory then let heapInBytes = JSHelpers.usedHeap() diff --git a/src/Renderer/UI/WaveSim/WaveSim.fs b/src/Renderer/UI/WaveSim/WaveSim.fs index f7c7fe189..27eea33ec 100644 --- a/src/Renderer/UI/WaveSim/WaveSim.fs +++ b/src/Renderer/UI/WaveSim/WaveSim.fs @@ -106,7 +106,8 @@ let rec refreshWaveSim (newSimulation: bool) (wsModel: WaveSimModel) (model: Mod // Only generate waveforms for selected waves. // Regenerate waveforms whenever they have changed let hasChanged = not <| WaveSimWaves.waveformIsUptodate wsModel wave - //if List.contains index ws.SelectedWaves then + //if List.contains index ws.SelectedWaves then + printfn $"Checking redraw: {wave.CompLabel} hasChanged={hasChanged} uptodate={simulationIsUptodate}" List.exists (fun wi' -> isSameWave wi wi') wsModel.SelectedWaves && hasChanged && simulationIsUptodate) |> Map.toList |> List.map fst