Defer Design View's per-FX park to an idle tick; honest undo mask, compare-before-write, PreventUIRefresh bracket, O(1) handle resolve
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
#include "shell/panel/panel_window.h" // panel lifecycle (init/toggle/open-query/shutdown)
|
||||
#include "shell/persist/session.h" // ReaSamplerSession
|
||||
#include "shell/view/view.h" // reconcileManagedLanes / applyMode
|
||||
#include "shell/view/view_fx_park.h" // the mode switch's deferred FX park
|
||||
|
||||
namespace capture = reasampler::capture;
|
||||
|
||||
@@ -172,6 +173,12 @@ static void OnTimer()
|
||||
|
||||
g_session.poll();
|
||||
|
||||
// A mode switch applies its visibility/routing writes synchronously and leaves
|
||||
// the per-FX offline work here, so the new mode paints before the plugins
|
||||
// unload. Drained AFTER poll() so a project switch discards the queue instead
|
||||
// of applying it to the project that replaced it; idle cost is one empty test.
|
||||
reasampler::drainDeferredFxParks(g_session.view());
|
||||
|
||||
// persist stays MODEL-ONLY (loads the saved view model but does not apply
|
||||
// visibility, to avoid coupling persist to the view shell); poll() raises a
|
||||
// one-shot load signal that we drain here to reapply the SAVED active mode so a
|
||||
|
||||
Reference in New Issue
Block a user