Our plugin calls
AudioProcessor::updateHostDisplay (ChangeDetails().withNonParameterStateChanged (true));
when the user performs an action that invalidate the plugin state in order to notify the host that the plugin state has changed. Besides calling it after special user interaction, we also call it when the Editor is closed.
Now when testing the VST3 build with Reaper, I see a strange behaviour: I can follow the call to
updateHostDisplay down to the VST3 internal
ComponentRestarter::handleAsyncUpdate function I can see that it being executed. However, if the editor is not closed, reaper will not mark the project as unsaved and ask the user to save the session. In contrast to that, e.g. Ableton Live 11 immediately marks the project as unsaved when the user performs an action that leads to the invocation of updateHostDisplay.
I’m not sure how to debug this better, but does anyone have a clue why reaper would ignore this call unless the editor has been closed? Is there anything else I should do than calling
updateHostDisplay in order to inform the host that the plugin state has been invalidated and needs to be re-saved?
The project uses JUCE 6.1.4