diff --git a/Source/MetaCoreEditor/Private/MetaCoreBuiltinCoreServicesModule.cpp b/Source/MetaCoreEditor/Private/MetaCoreBuiltinCoreServicesModule.cpp index d39cc11..7e09214 100644 --- a/Source/MetaCoreEditor/Private/MetaCoreBuiltinCoreServicesModule.cpp +++ b/Source/MetaCoreEditor/Private/MetaCoreBuiltinCoreServicesModule.cpp @@ -7169,7 +7169,7 @@ public: return; } - if (editorContext.GetInput().IsKeyDown(MetaCoreInputKey::Control)) { + if (io.KeyCtrl) { if (pickedObjectId != 0) { editorContext.ToggleSelection(pickedObjectId); } diff --git a/tests/MetaCoreSmokeTests.cpp b/tests/MetaCoreSmokeTests.cpp index 2d287f2..6e31a45 100644 --- a/tests/MetaCoreSmokeTests.cpp +++ b/tests/MetaCoreSmokeTests.cpp @@ -243,6 +243,10 @@ void MetaCoreTestSelectionStateMachine() { editorContext.SetSelection(allObjectIds, allObjectIds.back()); MetaCoreExpect(editorContext.GetSelectedObjectIds().size() == allObjectIds.size(), "全选应包含场景中的所有对象"); MetaCoreExpect(editorContext.GetActiveObjectId() == allObjectIds.back(), "全选后 Active 应为最后一个对象"); + + editorContext.SetSelection(allObjectIds, objectAId); + MetaCoreExpect(editorContext.GetSelectedObjectIds().size() == allObjectIds.size(), "重设 Active 不应丢失多选集合"); + MetaCoreExpect(editorContext.GetActiveObjectId() == objectAId, "重设 Active 应支持多选集合中的非末尾对象"); } void MetaCoreTestUndoRedo() {