From 59eaf5305a113f6ce451b7dbaaafff79a2b50bf7 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Fri, 22 Apr 2011 11:07:54 +0200 Subject: [PATCH] [#156 state:fixed] Fixed a visual glitch in Cocoa's result window colors when a row is selected. --- cocoa/base/ResultTable.m | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/cocoa/base/ResultTable.m b/cocoa/base/ResultTable.m index ed11676e..51580d88 100644 --- a/cocoa/base/ResultTable.m +++ b/cocoa/base/ResultTable.m @@ -117,7 +117,8 @@ http://www.hardcoded.net/licenses/bsd_license } - (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)column row:(NSInteger)row -{ +{ + BOOL isSelected = [tableView isRowSelected:row]; BOOL isMarkable = n2b([[self py] valueForColumn:@"markable" row:row]); if ([[column identifier] isEqual:@"marked"]) { [cell setEnabled:isMarkable]; @@ -126,20 +127,22 @@ http://www.hardcoded.net/licenses/bsd_license [cell setImagePosition:pos]; } if ([cell isKindOfClass:[NSTextFieldCell class]]) { - // Determine if the text color will be blue due to directory being reference. - NSTextFieldCell *textCell = cell; - if (isMarkable) { - [textCell setTextColor:[NSColor blackColor]]; + NSColor *color = [NSColor textColor]; + if (isSelected) { + color = [NSColor selectedTextColor]; + } + else if (isMarkable) { if ([self deltaValuesMode]) { NSInteger i = [[column identifier] integerValue]; if ([_deltaColumns containsIndex:i]) { - [textCell setTextColor:[NSColor orangeColor]]; + color = [NSColor orangeColor]; } } } else { - [textCell setTextColor:[NSColor blueColor]]; + color = [NSColor blueColor]; } + [(NSTextFieldCell *)cell setTextColor:color]; } }