Fix: Use selection listener instead of mouse-up to detect node clicks
Problem with mouse-up: There is also an event when the node is expanded
or collapsed. In this case the tree may scroll and therefore the
detected Scout node may be wrong.
Change-Id: Iddfeb0389d83d11a89cecc37ee1c4b8831dfa8d2
Reviewed-on: https://git.eclipse.org/r/47627
Tested-by: Hudson CI
Reviewed-by: Judith Gull <jgu@bsiag.com>
diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/basic/tree/RwtScoutTree.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/basic/tree/RwtScoutTree.java
index a2900f3..ea07098 100644
--- a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/basic/tree/RwtScoutTree.java
+++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/basic/tree/RwtScoutTree.java
@@ -109,7 +109,7 @@
viewer.addDoubleClickListener(new P_RwtDoubleClickListener());
P_RwtTreeListener treeListener = new P_RwtTreeListener();
- viewer.getTree().addListener(SWT.MouseDown, treeListener);
+ viewer.getTree().addListener(SWT.Selection, treeListener);
viewer.getTree().addListener(SWT.MouseUp, treeListener);
viewer.getTree().addListener(SWT.MenuDetect, treeListener);
@@ -387,7 +387,7 @@
/**
* Update the given node.
- *
+ *
* @since 3.10.0-M5
*/
protected void updateTreeNode(ITreeNode node) {
@@ -785,7 +785,7 @@
@Override
public void handleEvent(Event event) {
switch (event.type) {
- case SWT.MouseUp: {
+ case SWT.Selection: {
ViewerCell cell = getUiTreeViewer().getCell(new Point(event.x, event.y));
if (cell != null && cell.getBounds().contains(event.x, event.y) && cell.getElement() instanceof ITreeNode) {
ITreeNode nodeToClick = (ITreeNode) cell.getElement();