From b346d761d8459feec242765a63a1bc53d4f2a4ad Mon Sep 17 00:00:00 2001 From: Randall Luecke Date: Mon, 9 Aug 2010 14:13:04 -0500 Subject: [PATCH] Fix bug so we can drag items below the last child index in the outlineView. --- AppKit/CPOutlineView.j | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/AppKit/CPOutlineView.j b/AppKit/CPOutlineView.j index f3bb21bac..414249a0b 100644 --- a/AppKit/CPOutlineView.j +++ b/AppKit/CPOutlineView.j @@ -624,7 +624,7 @@ CPOutlineViewDropOnItemIndex = -1; if (_dropItem) { [_dropOperationFeedbackView blink]; - [CPTimer scheduledTimerWithTimeInterval:.3 callback:objj_msgSend(self, "expandItem:", _dropItem) repeats:NO]; //[self expandItem:_dropItem]; + [CPTimer scheduledTimerWithTimeInterval:.3 callback:objj_msgSend(self, "expandItem:", _dropItem) repeats:NO]; } } @@ -645,10 +645,18 @@ CPOutlineViewDropOnItemIndex = -1; _shouldRetargetChildIndex = YES; // set CPTableView's _retargetedDropRow based on retargetedItem and retargetedChildIndex - var retargetedItemInfo = (_retargetedItem !== nil) ? _itemInfosForItems[[_retargetedItem UID]] : _rootItemInfo, - retargetedChildItem = (_retargedChildIndex !== CPOutlineViewDropOnItemIndex) ? retargetedItemInfo.children[_retargedChildIndex] : _retargetedItem; + var retargetedItemInfo = (_retargetedItem !== nil) ? _itemInfosForItems[[_retargetedItem UID]] : _rootItemInfo; - _retargetedDropRow = [self rowForItem:retargetedChildItem]; + if (_retargedChildIndex === [retargetedItemInfo.children count]) + { + var retargetedChildItem = [retargetedItemInfo.children lastObject]; + _retargetedDropRow = [self rowForItem:retargetedChildItem] + 1; + } + else + { + var retargetedChildItem = (_retargedChildIndex !== CPOutlineViewDropOnItemIndex) ? retargetedItemInfo.children[_retargedChildIndex] : _retargetedItem; + _retargetedDropRow = [self rowForItem:retargetedChildItem]; + } } - (void)_draggingEnded