Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
c562118
Added test to cover the fix.
AswinRajGopal Feb 17, 2026
0ed73d8
Fix: Avoid disabling project-wide actions on shutdown
AswinRajGopal Feb 17, 2026
e917c04
Merge branch 'develop' into uum-134130/fix-project-wide-action-onshut…
AswinRajGopal Mar 2, 2026
61807cc
Fix test double shutdown call causing issues.
AswinRajGopal Mar 3, 2026
b087ccd
Fix InputForUI action lifecycle to only manage the UI action map.
AswinRajGopal Mar 23, 2026
9cdf098
Merge branch 'develop' into uum-134130/fix-project-wide-action-onshut…
AswinRajGopal Mar 24, 2026
7c52dce
Scope UI action map lifecycle to provider-owned assets and address u-…
AswinRajGopal May 19, 2026
0771421
Merge branch 'develop' into uum-134130/fix-project-wide-action-onshut…
AswinRajGopal May 21, 2026
17450d1
Address PR comments and add changelog.
AswinRajGopal May 22, 2026
0acc808
track UI action map enablement independent of asset ownership
AswinRajGopal May 26, 2026
20e7f4e
Fix; New Tests; - Correct and extend provider shutdown tests for per-…
AswinRajGopal May 27, 2026
93e82fb
Missed change due to test failure locally.
AswinRajGopal May 27, 2026
c9fbf6a
Fix test failures
AswinRajGopal May 27, 2026
dc11f07
For provider-owned assets the cleanup still applies (disable on shutd…
AswinRajGopal May 27, 2026
2b5eadf
Update test action asset.
AswinRajGopal May 27, 2026
15e20a1
Clearing the callback in teardown to avoid test pollution.
AswinRajGopal May 28, 2026
3775eb7
The teardown cleanup is unnecessary.
AswinRajGopal May 28, 2026
1478b5b
Use OnActionsChange() instead of Initialize() to re-select action ass…
AswinRajGopal May 29, 2026
c52edfd
Merge branch 'develop' into uum-134130/fix-project-wide-action-onshut…
AswinRajGopal Jun 4, 2026
35ba886
Merge branch 'develop' into uum-134130/fix-project-wide-action-onshut…
ritamerkl Jun 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion Assets/Tests/InputSystem/Plugins/InputForUITests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public class InputForUITests : InputTestFixture
readonly List<Event> m_InputForUIEvents = new List<Event>();
private int m_CurrentInputEventToCheck;
InputSystemProvider m_InputSystemProvider;
private bool m_ClearedMockProvider;

private InputActionAsset storedActions;

Expand All @@ -45,6 +46,7 @@ public override void Setup()
{
base.Setup();
m_CurrentInputEventToCheck = 0;
m_ClearedMockProvider = false;

storedActions = InputSystem.actions;

Expand All @@ -59,7 +61,8 @@ public override void Setup()
public override void TearDown()
{
EventProvider.Unsubscribe(InputForUIOnEvent);
EventProvider.ClearMockProvider();
if (!m_ClearedMockProvider)
EventProvider.ClearMockProvider();
m_InputForUIEvents.Clear();

InputSystem.manager.actions = storedActions;
Expand Down Expand Up @@ -92,6 +95,34 @@ public void InputSystemActionAssetIsNotNull()
"Test is invalid since InputSystemProvider actions are not available");
}

[Test]
[Category(kTestCategory)]
public void Shutdown_DoesNotDisableProjectWideActionsAsset()
{
var asset = ScriptableObject.CreateInstance<InputActionAsset>();
var uiMap = new InputActionMap("UI");
uiMap.AddAction("Point", InputActionType.PassThrough, "<Mouse>/position");
uiMap.AddAction("Navigate", InputActionType.PassThrough, "<Gamepad>/leftStick");
uiMap.AddAction("Submit", InputActionType.Button, "<Keyboard>/enter");
uiMap.AddAction("Cancel", InputActionType.Button, "<Keyboard>/escape");
uiMap.AddAction("Click", InputActionType.PassThrough, "<Mouse>/leftButton");
uiMap.AddAction("MiddleClick", InputActionType.PassThrough, "<Mouse>/middleButton");
uiMap.AddAction("RightClick", InputActionType.PassThrough, "<Mouse>/rightButton");
uiMap.AddAction("ScrollWheel", InputActionType.PassThrough, "<Mouse>/scroll");
asset.AddActionMap(uiMap);

InputSystem.s_Manager.actions = asset;
Comment thread
AswinRajGopal marked this conversation as resolved.
Outdated

m_InputSystemProvider.Initialize();
Assert.That(asset.enabled, Is.True, "Project-wide actions should be enabled by provider initialization.");

EventProvider.ClearMockProvider();
m_ClearedMockProvider = true;
Assert.That(asset.enabled, Is.True, "Project-wide actions must remain enabled after provider shutdown.");
Comment thread
AswinRajGopal marked this conversation as resolved.
Outdated

Object.DestroyImmediate(asset);
}

[Test]
[Category(kTestCategory)]
// Checks that mouse events are ignored when a touch is active.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ internal class InputSystemProvider : IEventProviderImpl

DefaultInputActions m_DefaultInputActions;
InputActionAsset m_InputActionAsset;
InputActionMap m_UIActionMap;
bool m_ShouldDisableUIActionMapOnUnregister;

// Note that these are plain action references instead since InputActionReference do
// not provide any value when this integration doesn't have any UI. If this integration
Expand Down Expand Up @@ -636,14 +638,11 @@ void RegisterActions()
m_RightClickAction = FindActionAndRegisterCallback(Actions.RightClickAction, OnRightClickPerformed);
m_ScrollWheelAction = FindActionAndRegisterCallback(Actions.ScrollWheelAction, OnScrollWheelPerformed);

// When adding new actions, don't forget to add them to UnregisterActions
if (InputSystem.actions == null)
{
// If we've not loaded a user-created set of actions, just enable the UI actions from our defaults.
m_InputActionAsset.FindActionMap("UI", true).Enable();
}
else
m_InputActionAsset.Enable();
// Only touch the UI map so we don't change the enabled state of unrelated maps.
m_UIActionMap = m_InputActionAsset?.FindActionMap("UI", true);
m_ShouldDisableUIActionMapOnUnregister = m_UIActionMap != null && !m_UIActionMap.enabled;
Comment thread
AswinRajGopal marked this conversation as resolved.
Outdated
if (m_ShouldDisableUIActionMapOnUnregister)
m_UIActionMap.Enable();
}

void UnregisterAction(ref InputAction action, Action<InputAction.CallbackContext> callback = null)
Expand All @@ -664,8 +663,11 @@ void UnregisterActions()
UnregisterAction(ref m_RightClickAction, OnRightClickPerformed);
UnregisterAction(ref m_ScrollWheelAction, OnScrollWheelPerformed);

if (m_InputActionAsset != null)
m_InputActionAsset.Disable();
if (m_ShouldDisableUIActionMapOnUnregister && m_UIActionMap != null)
m_UIActionMap.Disable();

m_UIActionMap = null;
m_ShouldDisableUIActionMapOnUnregister = false;
}

void SelectInputActionAsset()
Expand Down
Loading