From 097e1c94750be82f87a6c77a4d8c55bae73e516a Mon Sep 17 00:00:00 2001 From: ayuan9957 <107920784+ayuan9957@users.noreply.github.com> Date: Tue, 23 Jun 2026 17:22:38 +0800 Subject: [PATCH] fix(editor): align viewport selection modifiers --- .../Private/MetaCoreBuiltinCoreServicesModule.cpp | 2 +- tests/MetaCoreSmokeTests.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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() {