diff options
author | Rindbee <idleman@yeah.net> | 2022-12-29 12:58:58 +0800 |
---|---|---|
committer | Rindbee <idleman@yeah.net> | 2022-12-31 20:29:09 +0800 |
commit | ef2c3398e6d3bce159d322df64b4a23c46a9acc1 (patch) | |
tree | 166e2379e3d4dbfeb217ecfcb4a0f9fafc87e205 /editor | |
parent | 7e1bd3f95a10acf60e07a8a6518cc80bfee6fbbf (diff) |
Propagate the keying state in the inspector
Toggling the keying state does not significantly change the structure
of the inspector. So it's ok to propagate the keying state and then
use `queue_redraw()` to update the keying icon.
Diffstat (limited to 'editor')
-rw-r--r-- | editor/editor_inspector.cpp | 5 | ||||
-rw-r--r-- | editor/editor_properties.cpp | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 88a1bbb4a9..9a3eb75416 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -3365,7 +3365,10 @@ void EditorInspector::set_keying(bool p_active) { return; } keying = p_active; - update_tree(); + // Propagate the keying state to its editor properties. + Array args; + args.append(keying); + main_vbox->propagate_call(SNAME("set_keying"), args, true); } void EditorInspector::set_read_only(bool p_read_only) { diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 4c9b18efe7..8c5db444ab 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -4121,6 +4121,8 @@ void EditorPropertyResource::update_property() { if (use_editor) { // Open editor directly and hide other such editors which are currently open. + // The opened editor is the one that edits the sub-resource, so keying state will be toggled to false. + sub_inspector->set_keying(false); _open_editor_pressed(); if (is_inside_tree()) { get_tree()->call_deferred(SNAME("call_group"), "_editor_resource_properties", "_fold_other_editors", this); |