Index: NSOutlineView.m =================================================================== --- NSOutlineView.m (revision 24482) +++ NSOutlineView.m (working copy) @@ -449,6 +449,7 @@ id object = (item == nil) ? (id)[NSNull null] : (id)item; NSArray *allKeys = NSAllMapTableKeys(_itemDict); NSEnumerator *en = [allKeys objectEnumerator]; + NSRect rectOfItem, rectOfLastRow; expanded = [self isItemExpanded: item]; @@ -485,8 +486,19 @@ [self _openItem: dsobj]; [self noteNumberOfRowsChanged]; } - } - [self setNeedsDisplay: YES]; + } + + rectOfItem = [self rectOfRow:[self rowForItem:item]]; + + if (reloadChildren && expanded) + { + rectOfLastRow = [self rectOfRow:_numberOfRows - 1]; + [self setNeedsDisplayInRect:NSUnionRect(rectOfItem, rectOfLastRow)]; + } + else + { + [self setNeedsDisplayInRect: rectOfItem]; + } } /**