Search Issue Tracker

By Design

Votes

0

Found in

2022.3.61f1

6000.0.47f1

6000.1.1f1

6000.2.0a9

Issue ID

UUM-104534

Regression

No

onRemoveCallback is not called when removing an element from the ReoderableList using contextMenu

-

Reproduction steps:
1. Open the attached project "ReproProj"
2. In the Project window, click on “/Assets/AnotherExampleSO.asset“
3. In Inspector, click “+“ sign for both arrays 3 times
4. Click the “-“ sign in the “Exploration Resources” array
5. Observe the “On Remove callback for ExplorationResources“ Message in the Console
6. Clear Console
7. Right-click any element in the “Exploration Resources“ array and click “Delete Array Element“
8. Observe the Console

Expected result: Message “On Remove callback for ExplorationResources“ exists
Actual result: No Message is present

Reproducible with: 2022.3.61f1, 6000.0.47f1, 6000.1.1f1, 6000.2.0a9

Testing environment: Windows 10 Enterprise 21H2
Not reproducible on: No other environment tested

  1. Resolution Note:

    The "onRemoveCallback" is meant to replace the behavior of the "-" button of the ReorderableList, whereas the context menu option "Delete Array Element" acts directly on the SerializedProperty from outside the ReorderableList code. The regression risk of changing this behavior at this point would be too high because other users could be doing something special with the "onRemoveCallback" that doesn't work from the context menu option since the GUI state would be different.

    We recommend using the "onChangedCallback" and track the array size instead to filter out other sorts of operations. This callback will be called by both the "-" button and the "Delete Array Element" code paths right after the elements are removed.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.