Bug 414371:Double click on current stack element in stack trace doesn't
focus editor.(missing selection event)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Tree.java
index 8e541d2..ad5c4cf 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Tree.java
@@ -2035,10 +2035,7 @@
 		if (widget.isRowSelected(row)) {
 			NSRect rect = widget.frameOfOutlineCellAtRow(row);
 			if (!OS.NSPointInRect(pt, rect)) {
-				Widget item = itemID != null ? display.getWidget (itemID.id) : null;
-				if (item != null && item instanceof TreeItem) {
-					selectedRowIndex = this.indexOf ((TreeItem)item);
-				}
+				selectedRowIndex = row;
 			}
 		}
 	}
@@ -2632,7 +2629,7 @@
 		 * selection event before MouseUp is sent. Ignore the next selection event.
 		 */
 		if (!dragDetected && selectedRowIndex != -1) {
-			NSTableView widget = (NSTableView)view;
+			NSOutlineView widget = (NSOutlineView)view;
 			NSIndexSet selectedRows = widget.selectedRowIndexes ();
 			int count = (int)/*64*/selectedRows.count();
 			long /*int*/ [] indexBuffer = new long /*int*/ [count];
@@ -2645,9 +2642,15 @@
 			}
 			
 			Event event = new Event ();
-			event.item = _getItem (null, selectedRowIndex, true);
+			id itemID = widget.itemAtRow (selectedRowIndex);
+			if (itemID != null) {
+				Widget item = display.getWidget (itemID.id);
+				if (item != null && item instanceof TreeItem) {
+					event.item = display.getWidget (itemID.id);
+					sendSelectionEvent (SWT.Selection, event, false);
+				}
+			}
 			selectedRowIndex = -1;
-			sendSelectionEvent (SWT.Selection, event, false);
 			ignoreSelect = true;
 		}
 		dragDetected = false;