From 0cbdb3b2d1b475a70111337f689ad3f6c688ebe3 Mon Sep 17 00:00:00 2001 From: Randall Luecke Date: Mon, 12 Jul 2010 21:14:48 -0500 Subject: [PATCH] Fix for redrawing issues in tableview. Closes #627 --- AppKit/CPTableView.j | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index 9d766232a..ad854587a 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -880,7 +880,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; _selectedColumnIndexes = [columns copy]; [self _updateHighlightWithOldColumns:previousSelectedIndexes newColumns:_selectedColumnIndexes]; - [_tableDrawView display]; // FIXME: should be setNeedsDisplayInRect:enclosing rect of new (de)selected columns + [self setNeedsDisplay:YES]; // FIXME: should be setNeedsDisplayInRect:enclosing rect of new (de)selected columns // but currently -drawRect: is not implemented here if (_headerView) [_headerView setNeedsDisplay:YES]; @@ -896,7 +896,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; _selectedRowIndexes = [rows copy]; [self _updateHighlightWithOldRows:previousSelectedIndexes newRows:_selectedRowIndexes]; - [_tableDrawView display]; // FIXME: should be setNeedsDisplayInRect:enclosing rect of new (de)selected rows + [self setNeedsDisplay:YES]; // FIXME: should be setNeedsDisplayInRect:enclosing rect of new (de)selected rows // but currently -drawRect: is not implemented here [[CPKeyValueBinding getBinding:@"selectionIndexes" forObject:self] reverseSetValueFor:@"selectedRowIndexes"]; @@ -2237,7 +2237,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; [_tableDrawView setFrame:exposedRect]; - [_tableDrawView display]; + [self setNeedsDisplay:YES]; // Now clear all the leftovers // FIXME: this could be faster! @@ -2474,6 +2474,12 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; return [self convertRect:CGRectIntersection([superview bounds], [self frame]) fromView:superview]; } +- (void)setNeedsDisplay:(BOOL)aFlag +{ + [super setNeedsDisplay:aFlag]; + [_tableDrawView setNeedsDisplay:aFlag]; +} + - (void)_drawRect:(CGRect)aRect { // FIX ME: All three of these methods will likely need to be rewritten for 1.0