mirror of
https://github.com/textmate/textmate.git
synced 2026-04-28 03:00:34 -04:00
Loop select items in Chooser
If `enableLoopFilterList` is set to `YES`: - when at top, pressing <Up> selects the last item on bottom - when at bottom, pressing <Down> selects the first item on top
This commit is contained in:
@@ -11,6 +11,8 @@
|
||||
@property (nonatomic, weak) NSTableView* tableView;
|
||||
@end
|
||||
|
||||
static NSString* const kUserDefaultsEnableLoopFilterList = @"enableLoopFilterList";
|
||||
|
||||
@implementation OakTextFieldMovementDelegate
|
||||
- (void)moveSelectedRowByOffset:(NSInteger)anOffset extendingSelection:(BOOL)extend sender:(id)sender
|
||||
{
|
||||
@@ -18,7 +20,13 @@
|
||||
{
|
||||
if(_tableView.allowsMultipleSelection == NO)
|
||||
extend = NO;
|
||||
NSInteger row = oak::cap((NSInteger)0, [_tableView selectedRow] + anOffset, [_tableView numberOfRows] - 1);
|
||||
|
||||
NSInteger row = [_tableView selectedRow] + anOffset;
|
||||
NSInteger numberOfRows = [_tableView numberOfRows];
|
||||
if(abs(anOffset) == 1 && numberOfRows && [[NSUserDefaults standardUserDefaults] boolForKey:kUserDefaultsEnableLoopFilterList])
|
||||
row = (row + numberOfRows) % numberOfRows;
|
||||
else row = oak::cap((NSInteger)0, row, numberOfRows - 1);
|
||||
|
||||
[_tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:extend];
|
||||
[_tableView scrollRowToVisible:row];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user