Properly handle grid layout with Tree::move_tile_to_container()
#45
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follow-up to:
The grid layout needs a special treatment because it can have holes, contrary to other containers.
When dragging a tile away from a grid, it leaves behind it a hole. As a result, if the tile is dropped in the same grid, it there is no need to account for an insertion index shift. However, if the tiles are reordered in a separate, linear representation of the grid (such as the Rerun blueprint tree), the expectation is that the grid is reordered and thus the insertion index must be shifted in case the tile is moved inside the same grid. This PR introduce a flag in
move_tile_to_container()
to select between these behaviors.In general: