forked from 1b-agent/opencadstudio-upstream
plugin: announce DocumentOpened once per load, not per tab switch
The guard remembered only the last announced (tab, generation), so switching A -> B -> A announced A's load again. Each tab now carries its own pending flag, set when a document is installed and cleared by the boundary dispatch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
68330ce39e
commit
4d66a58374
7 files changed
+28
-51
No files matched your search
@@ -1153,12 +1153,6 @@ pub(super) struct OpenCADStudio {
|
||||
/// boundaries as well as after plugin-initiated writes.
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
last_plugin_document: Option<(u64, u64)>,
|
||||
/// `(tab id, document generation)` last dispatched as `DocumentOpened` —
|
||||
/// a tab's generation changes only when a whole document replaced its
|
||||
/// content, so the opened notification fires once per load, never per
|
||||
/// edit (API v9).
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
last_plugin_document_opened: Option<(u64, u64)>,
|
||||
/// External add-on packages found in the plugins folder, refreshed when the
|
||||
/// Plugin Manager opens.
|
||||
external_plugins: Vec<crate::plugin::external::ExternalPlugin>,
|
||||
@@ -4838,8 +4832,6 @@ impl OpenCADStudio {
|
||||
last_plugin_selection: None,
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
last_plugin_document: None,
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
last_plugin_document_opened: None,
|
||||
external_plugins: Vec::new(),
|
||||
loaded_plugin_ids: rustc_hash::FxHashSet::default(),
|
||||
plugin_load_errors: rustc_hash::FxHashMap::default(),
|
||||
|
||||
Reference in new issue
Block a user