From b95fc983b779f7df7f13d6ca94f9b6518099b574 Mon Sep 17 00:00:00 2001 From: Adam Kewley Date: Thu, 7 Apr 2022 16:59:33 +0200 Subject: [PATCH] Fixed crash that happens when changing a component name --- src/Screens/ModelEditorScreen.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Screens/ModelEditorScreen.cpp b/src/Screens/ModelEditorScreen.cpp index 2120588a8b..4e3e6b2202 100644 --- a/src/Screens/ModelEditorScreen.cpp +++ b/src/Screens/ModelEditorScreen.cpp @@ -142,7 +142,9 @@ static void DrawTopLevelMembersEditor(osc::UndoableUiModel& st) { if (std::strlen(nambuf) > 0) { - st.updSelected()->setName(nambuf); + OpenSim::Component* selectedComponent = st.updSelected(); + selectedComponent->setName(nambuf); + st.setSelected(selectedComponent); // CARE: the selection depends on the name of the component st.commit("changed component name"); } } @@ -1242,6 +1244,12 @@ class osc::ModelEditorScreen::Impl final { DrawTopLevelMembersEditor(uim); } + // top-level member edits may have changed this + if (!uim.getSelected()) + { + return; + } + // property editors { auto maybeUpdater = m_ObjectPropsEditor.draw(*uim.getSelected());