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;