From 82c7a3d32dbaaa97787020f710ef796d0fd396a1 Mon Sep 17 00:00:00 2001 From: Paulius Dervinis Date: Thu, 23 Jul 2026 13:53:11 +0300 Subject: [PATCH 1/4] FIX: Action Maps list loses keyboard focus after deleting a map [UUM-147152] The Action Maps list in the UITK Input Actions editor lost keyboard focus after a map was deleted, so shortcuts stopped working until the user clicked a map again. ActionMapsView.DeleteActionMap(int index) dispatches the delete command that rebuilds the list and destroys the previously focused row, leaving the panel with no focused element. It now calls m_ListView.Focus() after the dispatch, restoring focus to the Action Maps list so Delete, Duplicate, and arrow-key navigation keep flowing to the auto-selected replacement map. This mirrors the existing behaviour in the sibling ActionsTreeView.DeleteItem. Jira: https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-147152 --- .../InputActionsEditorTests.cs | 21 +++++++++++++++++++ Packages/com.unity.inputsystem/CHANGELOG.md | 2 ++ .../UITKAssetEditor/Views/ActionMapsView.cs | 3 +++ 3 files changed, 26 insertions(+) diff --git a/Assets/Tests/InputSystem.Editor/InputActionsEditorTests.cs b/Assets/Tests/InputSystem.Editor/InputActionsEditorTests.cs index 96a51f9a7a..04209a0ea7 100644 --- a/Assets/Tests/InputSystem.Editor/InputActionsEditorTests.cs +++ b/Assets/Tests/InputSystem.Editor/InputActionsEditorTests.cs @@ -189,6 +189,27 @@ public IEnumerator CanDeleteActionMap() Assert.That(m_Window.currentAssetInEditor.actionMaps[1].name, Is.EqualTo("Third Name")); } + [UnityTest] + public IEnumerator ActionMapsList_WhenMapDeletedViaKeyboard_ListRetainsFocus() + { + var actionMapsContainer = m_Window.rootVisualElement.Q("action-maps-container"); + var listView = m_Window.rootVisualElement.Q("action-maps-list-view"); + + // Select an action map and make sure the list holds keyboard focus before deleting. + var actionMapItem = actionMapsContainer.Query().ToList(); + SimulateClickOn(actionMapItem[1]); + yield return WaitForFocus(listView); + + SimulateDeleteCommand(); + + yield return WaitUntil(() => actionMapsContainer.Query().ToList().Count == 2, "wait for element to be deleted"); + + // After the post-delete rebuild destroys the previously focused row, focus must be + // returned to the list so keyboard shortcuts keep flowing without an extra click. + yield return WaitForFocus(listView); + Assert.That(listView.focusController.focusedElement, Is.EqualTo(listView)); + } + [UnityTest] public IEnumerator CanRenameAction() { diff --git a/Packages/com.unity.inputsystem/CHANGELOG.md b/Packages/com.unity.inputsystem/CHANGELOG.md index cb02afbecf..dee187e786 100644 --- a/Packages/com.unity.inputsystem/CHANGELOG.md +++ b/Packages/com.unity.inputsystem/CHANGELOG.md @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] - yyyy-mm-dd +### Fixed +- Fixed the Action Maps list in the Input Actions editor losing keyboard focus after deleting a map, so that Delete, Duplicate, and arrow-key navigation kept working on the auto-selected replacement map without requiring an extra click [UUM-147152](https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-147152) ## [1.20.0] - 2026-07-21 diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/ActionMapsView.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/ActionMapsView.cs index ae8537d19e..1f1a944de0 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/ActionMapsView.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/ActionMapsView.cs @@ -131,6 +131,9 @@ internal void RenameActionMap(int index) internal void DeleteActionMap(int index) { Dispatch(Commands.DeleteActionMap(index)); + + // Deleting an item sometimes causes the UI Panel to lose focus; make sure we keep it + m_ListView.Focus(); } internal void DuplicateActionMap(int index) From 1732c86bb7722c1170db97e8a14c99e5716f4352 Mon Sep 17 00:00:00 2001 From: Paulius Dervinis Date: Fri, 24 Jul 2026 11:14:44 +0300 Subject: [PATCH 2/4] Fix duplicate docfx uid breaking documentation build --- .../Documentation~/introduction-on-screen-controls.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.inputsystem/Documentation~/introduction-on-screen-controls.md b/Packages/com.unity.inputsystem/Documentation~/introduction-on-screen-controls.md index b6bf80fc39..9e5ff3f4cf 100644 --- a/Packages/com.unity.inputsystem/Documentation~/introduction-on-screen-controls.md +++ b/Packages/com.unity.inputsystem/Documentation~/introduction-on-screen-controls.md @@ -1,5 +1,5 @@ --- -uid: input-system-on-screen +uid: input-system-introduction-on-screen --- # Introduction to on-screen controls From 741f3fa4f8002e6761ee3d5c04a90cbb2142faf3 Mon Sep 17 00:00:00 2001 From: Paulius Dervinis Date: Fri, 24 Jul 2026 11:41:33 +0300 Subject: [PATCH 3/4] Test if a validation exception clears CI issues --- Packages/com.unity.inputsystem/ValidationExceptions.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Packages/com.unity.inputsystem/ValidationExceptions.json b/Packages/com.unity.inputsystem/ValidationExceptions.json index 936a0caf80..b05599e84e 100644 --- a/Packages/com.unity.inputsystem/ValidationExceptions.json +++ b/Packages/com.unity.inputsystem/ValidationExceptions.json @@ -1,5 +1,11 @@ { "ErrorExceptions": [ + { + "ValidationTest": "API Updater Configuration Validation", + "ExceptionMessage": "stdout:\nstderr:\nYou must install or update .NET to run this application.\n\nApp: /Users/bokken/build/output/Unity-Technologies/InputSystem/.Editor/Unity.app/Contents/Resources/BuildPipeline/Compilation/ApiUpdater/APIUpdater.ConfigurationValidator.dll\nArchitecture: x64\nFramework: 'Microsoft.NETCore.App', version '10.0.0' (x64)\n.NET location: /Users/bokken/build/output/Unity-Technologies/InputSystem/.Editor/Unity.app/Contents/Resources/Scripting/NetCoreRuntime/\n\nThe following frameworks were found:\n 8.0.21 at [/Users/bokken/build/output/Unity-Technologies/InputSystem/.Editor/Unity.app/Contents/Resources/Scripting/NetCoreRuntime/shared/Microsoft.NETCore.App]\n\nLearn more:\nhttps://aka.ms/dotnet/app-launch-failed\n\nTo install missing framework, download:\nhttps://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=10.0.0&arch=x64&rid=osx-x64&os=osx.12\n", + "PackageVersion": "1.20.1", + "__comments": "TEMPORARY: editor 6000.0.69f1 ships APIUpdater.ConfigurationValidator.dll built against .NET 10, but the editor bundles only .NET 8, so the validator can't launch. This is an editor/toolchain bug, not a package defect. Remove this exception once a fixed 6000.0.x editor revision is in use." + }, { "ValidationTest": "API Validation", "ExceptionMessage": "Breaking changes require a new major version.", From cae6b7b2f6a6a0afe0f3d7f2d5d5b9d26cce4e34 Mon Sep 17 00:00:00 2001 From: Paulius Dervinis Date: Fri, 24 Jul 2026 12:14:14 +0300 Subject: [PATCH 4/4] Revert "Test if a validation exception clears CI issues" This reverts commit 741f3fa4f8002e6761ee3d5c04a90cbb2142faf3. --- Packages/com.unity.inputsystem/ValidationExceptions.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Packages/com.unity.inputsystem/ValidationExceptions.json b/Packages/com.unity.inputsystem/ValidationExceptions.json index b05599e84e..936a0caf80 100644 --- a/Packages/com.unity.inputsystem/ValidationExceptions.json +++ b/Packages/com.unity.inputsystem/ValidationExceptions.json @@ -1,11 +1,5 @@ { "ErrorExceptions": [ - { - "ValidationTest": "API Updater Configuration Validation", - "ExceptionMessage": "stdout:\nstderr:\nYou must install or update .NET to run this application.\n\nApp: /Users/bokken/build/output/Unity-Technologies/InputSystem/.Editor/Unity.app/Contents/Resources/BuildPipeline/Compilation/ApiUpdater/APIUpdater.ConfigurationValidator.dll\nArchitecture: x64\nFramework: 'Microsoft.NETCore.App', version '10.0.0' (x64)\n.NET location: /Users/bokken/build/output/Unity-Technologies/InputSystem/.Editor/Unity.app/Contents/Resources/Scripting/NetCoreRuntime/\n\nThe following frameworks were found:\n 8.0.21 at [/Users/bokken/build/output/Unity-Technologies/InputSystem/.Editor/Unity.app/Contents/Resources/Scripting/NetCoreRuntime/shared/Microsoft.NETCore.App]\n\nLearn more:\nhttps://aka.ms/dotnet/app-launch-failed\n\nTo install missing framework, download:\nhttps://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=10.0.0&arch=x64&rid=osx-x64&os=osx.12\n", - "PackageVersion": "1.20.1", - "__comments": "TEMPORARY: editor 6000.0.69f1 ships APIUpdater.ConfigurationValidator.dll built against .NET 10, but the editor bundles only .NET 8, so the validator can't launch. This is an editor/toolchain bug, not a package defect. Remove this exception once a fixed 6000.0.x editor revision is in use." - }, { "ValidationTest": "API Validation", "ExceptionMessage": "Breaking changes require a new major version.",