diff --git a/macosx/Controller.h b/macosx/Controller.h index 1e1f8c181..20dc2564f 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -241,6 +241,7 @@ typedef enum - (void) showStatusBar: (BOOL) show animate: (BOOL) animate; - (void) toggleFilterBar: (id) sender; - (void) showFilterBar: (BOOL) show animate: (BOOL) animate; +- (void) focusFilterField; - (void) allToolbarClicked: (id) sender; - (void) selectedToolbarClicked: (id) sender; diff --git a/macosx/Controller.m b/macosx/Controller.m index 6b3967a2d..7557146be 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -2796,12 +2796,6 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi [fTableView display]; } -- (void) toggleStatusBar: (id) sender -{ - [self showStatusBar: [fStatusBar isHidden] animate: YES]; - [fDefaults setBool: ![fStatusBar isHidden] forKey: @"StatusBar"]; -} - - (NSRect) windowFrameByAddingHeight: (float) height checkLimits: (BOOL) check { NSScrollView * scrollView = [fTableView enclosingScrollView]; @@ -2837,6 +2831,13 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi return windowFrame; } +- (void) toggleStatusBar: (id) sender +{ + [self showStatusBar: [fStatusBar isHidden] animate: YES]; + [fDefaults setBool: ![fStatusBar isHidden] forKey: @"StatusBar"]; +} + +//doesn't save shown state - (void) showStatusBar: (BOOL) show animate: (BOOL) animate { if (show != [fStatusBar isHidden]) @@ -2907,6 +2908,7 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi [fDefaults setBool: ![fFilterBar isHidden] forKey: @"FilterBar"]; } +//doesn't save shown state - (void) showFilterBar: (BOOL) show animate: (BOOL) animate { if (show != [fFilterBar isHidden]) @@ -2961,6 +2963,13 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi } } +- (void) focusFilterField +{ + [fWindow makeFirstResponder: fSearchFilterField]; + if ([fFilterBar isHidden]) + [self toggleFilterBar: self]; +} + - (ButtonToolbarItem *) standardToolbarButtonWithIdentifier: (NSString *) ident { ButtonToolbarItem * item = [[ButtonToolbarItem alloc] initWithItemIdentifier: ident]; diff --git a/macosx/TorrentTableView.m b/macosx/TorrentTableView.m index be6b0c138..07303261d 100644 --- a/macosx/TorrentTableView.m +++ b/macosx/TorrentTableView.m @@ -507,6 +507,16 @@ [super flagsChanged: event]; } +//option-command-f will focus the filter bar's search field +- (void) keyDown: (NSEvent *) event +{ + if ([[event charactersIgnoringModifiers] isEqualToString: @"f"] && [event modifierFlags] & NSAlternateKeyMask + && [event modifierFlags] & NSCommandKeyMask) + [fController focusFilterField]; + else + [super keyDown: event]; +} + - (void) toggleControlForTorrent: (Torrent *) torrent { if ([torrent isActive])