diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2023-01-29 02:22:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-29 02:22:41 +0100 |
commit | 70a7313fbe8da6e57b447a503dcb570da42b65bb (patch) | |
tree | 922244dd22d9021bc80fae1fa690eec2a645cdfc | |
parent | 4011a0915efd90854247a609651d7e31b412b1da (diff) | |
parent | 3f17bfad8d5a83087dd03b8f22feaaf5cbf97519 (diff) |
Merge pull request #72272 from KoBeWi/regressiuum_mobile
Fix editors potentially being used twice
-rw-r--r-- | editor/editor_node.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 0d5c820a3c..8b28319a1d 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -2096,14 +2096,25 @@ void EditorNode::edit_item(Object *p_object, Object *p_editing_owner) { if (!item_plugins.is_empty()) { ObjectID owner_id = p_editing_owner->get_instance_id(); + List<EditorPlugin *> to_remove; for (EditorPlugin *plugin : active_plugins[owner_id]) { if (!item_plugins.has(plugin)) { + // Remove plugins no longer used by this editing owner. + to_remove.push_back(plugin); plugin->make_visible(false); plugin->edit(nullptr); } } + for (EditorPlugin *plugin : to_remove) { + active_plugins[owner_id].erase(plugin); + } + for (EditorPlugin *plugin : item_plugins) { + if (active_plugins[owner_id].has(plugin)) { + continue; + } + for (KeyValue<ObjectID, HashSet<EditorPlugin *>> &kv : active_plugins) { if (kv.key != owner_id) { EditorPropertyResource *epres = Object::cast_to<EditorPropertyResource>(ObjectDB::get_instance(kv.key)); |