Fix ListClipper for single-item-list #3663
Closed
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.
ImGuiListClipper did not correctly calculate item height for single-item lists and therefore got the total y-offset wrong in the end. Code like this
Generates the following problem:
(This problem is present without the "Begin"/"End" texts and separators as well, they are for issue clarification).
Fixed this issue by moving the item height calculation before the early-out and End() call.
This is just a quick fix, it makes the code uglier and even more spaghettish, you might want to find something cleaner. I tested that it still works for lists with any number of items (including 0).