From d7432c376d1d6905c046fdf35e6f9de2b83b116d Mon Sep 17 00:00:00 2001 From: Klaas Pieter Annema Date: Wed, 5 May 2010 10:38:41 +0200 Subject: [PATCH] fixed a bug where column reordering would break when the last column was hidden --- AppKit/CPTableHeaderView.j | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/AppKit/CPTableHeaderView.j b/AppKit/CPTableHeaderView.j index d820c2e1e..0c5b23a28 100644 --- a/AppKit/CPTableHeaderView.j +++ b/AppKit/CPTableHeaderView.j @@ -358,10 +358,26 @@ var _CPTableColumnHeaderViewStringValueKey = @"_CPTableColumnHeaderViewStringVal return [[self tableView] allowsColumnReordering] && ABS(aPoint.x - _mouseDownLocation.x) >= 10.0; } +- (CPRect)_headerRectOfLastVisibleColumn +{ + var tableColumns = [[self tableView] tableColumns], + columnIndex = [tableColumns count]; + + while (columnIndex--) + { + var tableColumn = [tableColumns objectAtIndex:columnIndex]; + + if (![tableColumn isHidden]) + return [self headerRectOfColumn:columnIndex]; + } + + return nil; +} + - (void)_constrainDragView:(CPView)theDragView at:(CPPoint)aPoint { var tableColumns = [[self tableView] tableColumns], - lastColumnRect = [self headerRectOfColumn:[tableColumns indexOfObjectIdenticalTo:[tableColumns lastObject]]], + lastColumnRect = [self _headerRectOfLastVisibleColumn]; activeColumnRect = [self headerRectOfColumn:_activeColumn]; dragWindow = [theDragView window], frame = [dragWindow frame];