Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac: Fix issue updating items in a GridView #2699

Merged

Conversation

cwensley
Copy link
Member

@cwensley cwensley commented Nov 9, 2024

When certain collection updates happen, such as replacing an item or a range of items happen, then the visual state of the GridView could get out of whack as it could be reloading using the wrong item.

This happens because on Mac one must call NSTableView.BeginUpdates() before all updates are registered, then NSTableView.EndUpdates() after. Since the collection isn't actually changed when it called RemoveItem, then InsertItem, it could refresh the view using invalid state of the collection.

Now there are new virtual methods in CollectionChangedHandler for BeginUpdates() and EndUpdates() which can be forwarded to handlers in the case that the collection changed event causes multiple methods to be called.

Additionally, there are also ReplaceItem and ReplaceRange overrides in the case that replacing a single item can just refresh that row making it more efficient, and in the case of Mac will no longer make the refreshed item "slide down".

@cwensley cwensley added this to the 2.8.4 milestone Nov 9, 2024
@cwensley cwensley merged commit 3dcde01 into picoe:develop Nov 9, 2024
3 checks passed
@cwensley cwensley deleted the curtis/mac-fix-gridview-updating-items branch November 9, 2024 00:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant