From 8d1429d063027991bc3d363b13b3dedd355d44aa Mon Sep 17 00:00:00 2001 From: daboe01 Date: Tue, 25 Aug 2026 21:09:51 +0200 Subject: [PATCH] proxy fix --- AppKit/CPTreeController.j | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/AppKit/CPTreeController.j b/AppKit/CPTreeController.j index 17c61bab2..9d650f4c3 100644 --- a/AppKit/CPTreeController.j +++ b/AppKit/CPTreeController.j @@ -171,6 +171,9 @@ if (![value isKindOfClass:[CPArray class]]) value = [CPArray arrayWithObject:value]; + if (_contentObject === value) + return; + var oldSelectedObjects = nil, oldSelectionIndexPaths = nil; @@ -179,6 +182,10 @@ else oldSelectionIndexPaths = [self selectionIndexPaths]; + [self _selectionWillChange]; + [self willChangeValueForKey:@"content"]; + [self willChangeValueForKey:@"contentArray"]; + _contentObject = value; [self _rearrangeObjects]; @@ -187,17 +194,26 @@ [self __setSelectedObjects:oldSelectedObjects]; else [self __setSelectionIndexPaths:oldSelectionIndexPaths avoidEmpty:_avoidsEmptySelection]; + + [self didChangeValueForKey:@"contentArray"]; + [self didChangeValueForKey:@"content"]; + [self _selectionDidChange]; } + - (void)_setContentArray:(id)anArray { [self setContent:anArray]; } - (id)contentArray { return _contentObject; } - (id)arrangedObjects { return _arrangedObjects; } - (void)rearrangeObjects { + [self _selectionWillChange]; [self willChangeValueForKey:@"arrangedObjects"]; + [self _rearrangeObjects]; + [self didChangeValueForKey:@"arrangedObjects"]; + [self _selectionDidChange]; } - (void)_rearrangeObjects @@ -520,6 +536,7 @@ - (void)insertObjects:(CPArray)objects atArrangedObjectIndexPaths:(CPArray)indexPaths { + [self _selectionWillChange]; [self willChangeValueForKey:@"content"]; _disableSetContent = YES; @@ -569,6 +586,7 @@ [self setSelectionIndexPaths:indexPaths]; [self didChangeValueForKey:@"content"]; + [self _selectionDidChange]; } - (void)remove:(id)sender @@ -583,6 +601,7 @@ - (void)removeObjectsAtArrangedObjectIndexPaths:(CPArray)indexPaths { + [self _selectionWillChange]; [self willChangeValueForKey:@"content"]; _disableSetContent = YES; @@ -622,6 +641,7 @@ _disableSetContent = NO; [self _rearrangeObjects]; [self didChangeValueForKey:@"content"]; + [self _selectionDidChange]; } - (void)moveNode:(CPTreeNode)node toIndexPath:(CPIndexPath)indexPath