From 896f36dffba8d64643f372ae4ab1b8114e75dedd Mon Sep 17 00:00:00 2001 From: Ross Boucher Date: Sat, 27 Mar 2010 11:27:44 -0700 Subject: [PATCH] A better (but not perfect) way to handle the browser's first responder state. --- AppKit/CPBrowser.j | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/AppKit/CPBrowser.j b/AppKit/CPBrowser.j index 2774d8242..8d524b4ed 100644 --- a/AppKit/CPBrowser.j +++ b/AppKit/CPBrowser.j @@ -213,6 +213,8 @@ [table setAllowsEmptySelection:_allowsEmptySelection]; [table registerForDraggedTypes:[self registeredDraggedTypes]]; + [self setNextResponder:table]; + [self _addTableColumnsToTableView:table forColumnIndex:index]; var delegate = [[_CPBrowserTableDelegate alloc] init]; @@ -548,7 +550,8 @@ [self setLastColumn:column]; [[self tableViewInColumn:column] selectRowIndexes:indexSet byExtendingSelection:NO]; - [[self window] makeFirstResponder:[self tableViewInColumn:[self lastColumn]]]; + + [self setNextResponder:[self tableViewInColumn:[self lastColumn]]]; [self scrollColumnToVisible:column]; @@ -562,6 +565,11 @@ [_contentView setBackgroundColor:aColor]; } +- (BOOL)acceptsFirstResponder +{ + return YES; +} + // DRAG AND DROP - (void)registerForDraggedTypes:(CPArray)types @@ -679,6 +687,17 @@ var _CPBrowserResizeControlBackgroundImage = nil; return self; } +- (BOOL)acceptsFirstResponder +{ + return NO; +} + +- (void)mouseDown:(CPEvent)anEvent +{ + [super mouseDown:anEvent]; + [[self window] makeFirstResponder:_browser]; +} + - (CPView)browserView { return _browser;