NSOutlineView displayed drop destination does not match the real destination.

Originator:k.misiura
Number:rdar://21057095 Date Originated:21-May-2015
Status:Open Resolved:
Product:OS X SDK Product Version:10.10
Classification:Bug Reproducible:100%
 
Summary:
If user drags row between 2 top level rows, and top row is expanded. NSOutlineView keeps displaying inside of top item as destination, despite the real destination being between 2 top level items.
See attached video "drag-test.mov"

Steps to Reproduce:
1. Create application with NSOutlineView.
2. Implement NSOutlineViewDataSource “-outlineView:validateDrop:proposedItem:proposedChildIndex:” method and other required methods to enable dragging of rows.
3. Outline view must have data source with at least 2 levels, for example:
	-A
	-1
	  | -B
	  | -C
	  | -D
	-2
	  | -E
	  | -F 

3. Expand item “1”.
4. Drag item “A” below item “D” (look at image “drag-inside.jpg”).
5. Proposed drop item should be item “1” and child index 3.
6. Drag item to the left, behind item “D” (look at image “drag-outside.jpg”). Proposed drop item should be “null” and child index 2. But outline view visual representation of drop destination will not change.


Expected Results:
NSOutlineView displayed drop destination should match the real destination.

Actual Results:
NSOutlineView displayed drop destination does not match the real destination.

Version:
Xcode Version 6.3.1 (6D1002)
OS X Version 10.10.3 (14D136)


Notes:


Configuration:


Attachments:
'drag-test.mov', 'drag-inside.jpg', 'drag-outside.jpg' and 'DragTest.zip' were successfully uploaded.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!