Skip to content

Commit

Permalink
Merge pull request #1456 from cacaodev/CPTabView
Browse files Browse the repository at this point in the history
CPTabView: Do not track the segment when the delegate disallows item selection
  • Loading branch information
aparajita committed Apr 9, 2012
2 parents c528563 + d581dec commit 2a1af53
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 19 deletions.
11 changes: 5 additions & 6 deletions AppKit/CPTabView.j
Original file line number Diff line number Diff line change
Expand Up @@ -273,15 +273,15 @@ var CPTabViewDidSelectTabViewItemSelector = 1,
Selects the item at the specified index.
@param anIndex the index of the item to display.
*/
- (void)selectTabViewItemAtIndex:(unsigned)anIndex
- (BOOL)selectTabViewItemAtIndex:(unsigned)anIndex
{
if (anIndex === _selectedIndex)
return;

var aTabViewItem = [self tabViewItemAtIndex:anIndex];

if ((_delegateSelectors & CPTabViewShouldSelectTabViewItemSelector) && ![_delegate tabView:self shouldSelectTabViewItem:aTabViewItem])
return;
return NO;

if (_delegateSelectors & CPTabViewWillSelectTabViewItemSelector)
[_delegate tabView:self willSelectTabViewItem:aTabViewItem];
Expand All @@ -291,6 +291,8 @@ var CPTabViewDidSelectTabViewItemSelector = 1,

if (_delegateSelectors & CPTabViewDidSelectTabViewItemSelector)
[_delegate tabView:self didSelectTabViewItem:aTabViewItem];

return YES;
}

/*!
Expand Down Expand Up @@ -431,11 +433,8 @@ var CPTabViewDidSelectTabViewItemSelector = 1,
{
var segmentIndex = [_tabs testSegment:[_tabs convertPoint:[anEvent locationInWindow] fromView:nil]];

if (segmentIndex != CPNotFound)
{
[self selectTabViewItemAtIndex:segmentIndex];
if (segmentIndex != CPNotFound && [self selectTabViewItemAtIndex:segmentIndex])
[_tabs trackSegment:anEvent];
}
}

- (void)_repositionTabs
Expand Down
5 changes: 5 additions & 0 deletions Tests/Manual/CPTabViewNib/AppController.j
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,9 @@
CPLogConsole(_cmd + [tabViewItem label]);
}

- (void)tabView:(CPTabView)aTabView shouldSelectTabViewItem:(CPTabViewItem)tabViewItem
{
return [tabViewItem identifier] != @"unselectable";
}

@end

0 comments on commit 2a1af53

Please sign in to comment.