From 3615912ce0862b12988f04ccd7fc32c1ad3a9350 Mon Sep 17 00:00:00 2001 From: Didier Korthoudt Date: Mon, 20 Aug 2018 13:30:02 +0200 Subject: [PATCH] Fixed: Before this PR, loading of a CPTabView from a CIB file could crash the app (#2686) --- AppKit/CPTabView.j | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/AppKit/CPTabView.j b/AppKit/CPTabView.j index 84f6907ed..f48fb24e7 100644 --- a/AppKit/CPTabView.j +++ b/AppKit/CPTabView.j @@ -132,10 +132,10 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)insertTabViewItem:(CPTabViewItem)aTabViewItem atIndex:(CPUInteger)anIndex { - [self _insertTabViewItems:[aTabViewItem] atIndexes:[CPIndexSet indexSetWithIndex:anIndex]]; + [self _insertTabViewItems:[aTabViewItem] atIndexes:[CPIndexSet indexSetWithIndex:anIndex] canUpdateSelectedTab:YES]; } -- (void)_insertTabViewItems:(CPArray)tabViewItems atIndexes:(CPIndexSet)indexes +- (void)_insertTabViewItems:(CPArray)tabViewItems atIndexes:(CPIndexSet)indexes canUpdateSelectedTab:(BOOL)canUpdateSelectedTab { var prevItemsCount = [self numberOfTabViewItems]; @@ -148,7 +148,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [self _sendDelegateTabViewDidChangeNumberOfTabViewItems]; // Do not allow empty selection if selection bindings are not enabled. - if (prevItemsCount == 0 && [self numberOfTabViewItems] > 0 && ![self _isSelectionBinded]) + if (prevItemsCount == 0 && [self numberOfTabViewItems] > 0 && ![self _isSelectionBinded] && canUpdateSelectedTab) [self _selectTabViewItemAtIndex:0]; } @@ -796,7 +796,7 @@ var CPTabViewItemsKey = "CPTabViewItemsKey", [_tabs setFont:_font]; var items = [aCoder decodeObjectForKey:CPTabViewItemsKey] || [CPArray array]; - [self _insertTabViewItems:items atIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, [items count])]]; + [self _insertTabViewItems:items atIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, [items count])] canUpdateSelectedTab:NO]; [self setDelegate:[aCoder decodeObjectForKey:CPTabViewDelegateKey]];