summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorK. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>2022-03-07 06:39:21 -0800
committerSilc 'Tokage' Renew <61938263+TokageItLab@users.noreply.github.com>2022-03-08 06:21:04 +0900
commitfd411e580a192369e7d320981414c9c82752a238 (patch)
tree3a7308e57fe967053c6b49b7fbcc7954a71b9ec1 /editor
parent1421ce67800087086b2757677e715fbeddb7872d (diff)
Avoid gizmo crashes in cases where the points are null.
fix for pose editor
Diffstat (limited to 'editor')
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp
index 282ee9a5b7..aec1a09e48 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_3d_editor_plugin.cpp
@@ -528,19 +528,21 @@ void Skeleton3DEditor::move_skeleton_bone(NodePath p_skeleton_path, int32_t p_se
void Skeleton3DEditor::_joint_tree_selection_changed() {
TreeItem *selected = joint_tree->get_selected();
- if (selected) {
- const String path = selected->get_metadata(0);
-
- if (path.begins_with("bones/")) {
- const int b_idx = path.get_slicec('/', 1).to_int();
- const String bone_path = "bones/" + itos(b_idx) + "/";
-
- pose_editor->set_target(bone_path);
- pose_editor->set_keyable(keyable);
- selected_bone = b_idx;
- }
+ if (!selected) {
+ return;
+ }
+ const String path = selected->get_metadata(0);
+ if (!path.begins_with("bones/")) {
+ return;
+ }
+ const int b_idx = path.get_slicec('/', 1).to_int();
+ selected_bone = b_idx;
+ if (pose_editor) {
+ const String bone_path = "bones/" + itos(b_idx) + "/";
+ pose_editor->set_target(bone_path);
+ pose_editor->set_keyable(keyable);
+ pose_editor->set_visible(selected);
}
- pose_editor->set_visible(selected);
set_bone_options_enabled(selected);
_update_properties();
_update_gizmo_visible();