Skip to content

Commit 61e04b9

Browse files
author
Rene Damm
authored
FIX: UI input module null-checking wrong action (#906).
1 parent a82c90f commit 61e04b9

File tree

1 file changed

+36
-145
lines changed

1 file changed

+36
-145
lines changed

Packages/com.unity.inputsystem/InputSystem/Plugins/UI/InputSystemUIInputModule.cs

Lines changed: 36 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -861,82 +861,17 @@ private void HookActions()
861861
if (m_OnActionDelegate == null)
862862
m_OnActionDelegate = OnAction;
863863

864-
var pointAction = m_PointAction?.action;
865-
if (pointAction != null)
866-
{
867-
pointAction.performed += m_OnActionDelegate;
868-
pointAction.canceled += m_OnActionDelegate;
869-
}
870-
871-
var moveAction = m_MoveAction?.action;
872-
if (moveAction != null)
873-
{
874-
moveAction.performed += m_OnActionDelegate;
875-
moveAction.canceled += m_OnActionDelegate;
876-
}
877-
878-
var leftClickAction = m_LeftClickAction?.action;
879-
if (leftClickAction != null)
880-
{
881-
leftClickAction.performed += m_OnActionDelegate;
882-
leftClickAction.canceled += m_OnActionDelegate;
883-
}
884-
885-
var rightClickAction = m_RightClickAction?.action;
886-
if (rightClickAction != null)
887-
{
888-
rightClickAction.performed += m_OnActionDelegate;
889-
rightClickAction.canceled += m_OnActionDelegate;
890-
}
891-
892-
var middleClickAction = m_MiddleClickAction?.action;
893-
if (middleClickAction != null)
894-
{
895-
middleClickAction.performed += m_OnActionDelegate;
896-
middleClickAction.canceled += m_OnActionDelegate;
897-
}
898-
899-
var submitAction = m_SubmitAction?.action;
900-
if (submitAction != null)
901-
{
902-
submitAction.performed += m_OnActionDelegate;
903-
submitAction.canceled += m_OnActionDelegate;
904-
}
905-
906-
var cancelAction = m_CancelAction?.action;
907-
if (cancelAction != null)
908-
{
909-
cancelAction.performed += m_OnActionDelegate;
910-
cancelAction.canceled += m_OnActionDelegate;
911-
}
912-
913-
var scrollAction = m_ScrollWheelAction?.action;
914-
if (scrollAction != null)
915-
{
916-
scrollAction.performed += m_OnActionDelegate;
917-
scrollAction.canceled += m_OnActionDelegate;
918-
}
919-
920-
var trackedDeviceOrientationAction = m_TrackedDeviceOrientationAction?.action;
921-
if (trackedDeviceOrientationAction != null)
922-
{
923-
trackedDeviceOrientationAction.performed += m_OnActionDelegate;
924-
trackedDeviceOrientationAction.canceled += m_OnActionDelegate;
925-
}
926-
927-
var trackedDevicePositionAction = m_TrackedDevicePositionAction?.action;
928-
if (trackedDeviceOrientationAction != null)
929-
{
930-
trackedDevicePositionAction.performed += m_OnActionDelegate;
931-
trackedDevicePositionAction.canceled += m_OnActionDelegate;
932-
}
933-
934-
var trackedDeviceSelectAction = m_TrackedDeviceSelectAction?.action;
935-
if (trackedDeviceSelectAction != null)
936-
{
937-
trackedDeviceSelectAction.performed += m_OnActionDelegate;
938-
trackedDeviceSelectAction.canceled += m_OnActionDelegate;
939-
}
864+
SetActionCallback(m_PointAction, true);
865+
SetActionCallback(m_MoveAction, true);
866+
SetActionCallback(m_LeftClickAction, true);
867+
SetActionCallback(m_RightClickAction, true);
868+
SetActionCallback(m_MiddleClickAction, true);
869+
SetActionCallback(m_SubmitAction, true);
870+
SetActionCallback(m_CancelAction, true);
871+
SetActionCallback(m_ScrollWheelAction, true);
872+
SetActionCallback(m_TrackedDeviceOrientationAction, true);
873+
SetActionCallback(m_TrackedDevicePositionAction, true);
874+
SetActionCallback(m_TrackedDeviceSelectAction, true);
940875
}
941876

942877
private void UnhookActions()
@@ -946,81 +881,37 @@ private void UnhookActions()
946881

947882
m_ActionsHooked = false;
948883

949-
var pointAction = m_PointAction?.action;
950-
if (pointAction != null)
951-
{
952-
pointAction.performed -= m_OnActionDelegate;
953-
pointAction.canceled -= m_OnActionDelegate;
954-
}
955-
956-
var moveAction = m_MoveAction?.action;
957-
if (moveAction != null)
958-
{
959-
moveAction.performed -= m_OnActionDelegate;
960-
moveAction.canceled -= m_OnActionDelegate;
961-
}
962-
963-
var leftClickAction = m_LeftClickAction?.action;
964-
if (leftClickAction != null)
965-
{
966-
leftClickAction.performed -= m_OnActionDelegate;
967-
leftClickAction.canceled -= m_OnActionDelegate;
968-
}
969-
970-
var rightClickAction = m_RightClickAction?.action;
971-
if (rightClickAction != null)
972-
{
973-
rightClickAction.performed -= m_OnActionDelegate;
974-
rightClickAction.canceled -= m_OnActionDelegate;
975-
}
976-
977-
var middleClickAction = m_MiddleClickAction?.action;
978-
if (middleClickAction != null)
979-
{
980-
middleClickAction.performed -= m_OnActionDelegate;
981-
middleClickAction.canceled -= m_OnActionDelegate;
982-
}
983-
984-
var submitAction = m_SubmitAction?.action;
985-
if (submitAction != null)
986-
{
987-
submitAction.performed -= m_OnActionDelegate;
988-
submitAction.canceled -= m_OnActionDelegate;
989-
}
990-
991-
var cancelAction = m_CancelAction?.action;
992-
if (cancelAction != null)
993-
{
994-
cancelAction.performed -= m_OnActionDelegate;
995-
cancelAction.canceled -= m_OnActionDelegate;
996-
}
884+
SetActionCallback(m_PointAction, false);
885+
SetActionCallback(m_MoveAction, false);
886+
SetActionCallback(m_LeftClickAction, false);
887+
SetActionCallback(m_RightClickAction, false);
888+
SetActionCallback(m_MiddleClickAction, false);
889+
SetActionCallback(m_SubmitAction, false);
890+
SetActionCallback(m_CancelAction, false);
891+
SetActionCallback(m_ScrollWheelAction, false);
892+
SetActionCallback(m_TrackedDeviceOrientationAction, false);
893+
SetActionCallback(m_TrackedDevicePositionAction, false);
894+
SetActionCallback(m_TrackedDeviceSelectAction, false);
895+
}
997896

998-
var scrollAction = m_ScrollWheelAction?.action;
999-
if (scrollAction != null)
1000-
{
1001-
scrollAction.performed -= m_OnActionDelegate;
1002-
scrollAction.canceled -= m_OnActionDelegate;
1003-
}
897+
private void SetActionCallback(InputActionReference actionReference, bool install)
898+
{
899+
if (actionReference == null)
900+
return;
1004901

1005-
var trackedDeviceOrientationAction = m_TrackedDeviceOrientationAction?.action;
1006-
if (trackedDeviceOrientationAction != null)
1007-
{
1008-
trackedDeviceOrientationAction.performed -= m_OnActionDelegate;
1009-
trackedDeviceOrientationAction.canceled -= m_OnActionDelegate;
1010-
}
902+
var action = actionReference.action;
903+
if (action == null)
904+
return;
1011905

1012-
var trackedDevicePositionAction = m_TrackedDevicePositionAction?.action;
1013-
if (trackedDeviceOrientationAction != null)
906+
if (install)
1014907
{
1015-
trackedDevicePositionAction.performed -= m_OnActionDelegate;
1016-
trackedDevicePositionAction.canceled -= m_OnActionDelegate;
908+
action.performed += m_OnActionDelegate;
909+
action.canceled += m_OnActionDelegate;
1017910
}
1018-
1019-
var trackedDeviceSelectAction = m_TrackedDeviceSelectAction?.action;
1020-
if (trackedDeviceSelectAction != null)
911+
else
1021912
{
1022-
trackedDeviceSelectAction.performed -= m_OnActionDelegate;
1023-
trackedDeviceSelectAction.canceled -= m_OnActionDelegate;
913+
action.performed -= m_OnActionDelegate;
914+
action.canceled -= m_OnActionDelegate;
1024915
}
1025916
}
1026917

0 commit comments

Comments
 (0)