tmf.ui: [bug 494974] Fix left panel click handling in timegraph in Linux
authorMatthew Khouzam <matthew.khouzam@ericsson.com>
Tue, 31 May 2016 00:19:22 +0000 (20:19 -0400)
committerMatthew Khouzam <matthew.khouzam@ericsson.com>
Tue, 31 May 2016 19:56:00 +0000 (15:56 -0400)
Clicking on the left panel in Linux currently deselects the
entry. This behavior is particularly egregious in the case of
UI unit tests.

Change-Id: I18fbe001c6b7325c6618e46c22f13ad976357abe
Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/73998
Reviewed-by: Hudson CI
Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com>
Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/widgets/timegraph/TimeGraphCombo.java

index 1191865d4be26db9b2aa28d24064b7aee6b1e9cd..de2c062932a24ed642df070aa87c1f914fffc06a 100644 (file)
@@ -611,15 +611,16 @@ public class TimeGraphCombo extends Composite {
 
         // prevent mouse button from selecting a filler tree item
         tree.addListener(SWT.MouseDown, event -> {
-            TreeItem treeItem = tree.getItem(new Point(event.x, event.y));
-            if (treeItem == null || treeItem.getData() == FILLER) {
+            List<TreeItem> treeItems = getVisibleExpandedItems(tree, false);
+            if (treeItems.isEmpty()) {
+                event.doit = false;
+                fTreeViewer.setSelection(new StructuredSelection());
+                fTimeGraphViewer.setSelection(null);
+                return;
+            }
+            TreeItem lastTreeItem = treeItems.get(treeItems.size() - 1);
+            if (event.y >= lastTreeItem.getBounds().y + lastTreeItem.getBounds().height) {
                 event.doit = false;
-                List<TreeItem> treeItems = getVisibleExpandedItems(tree, false);
-                if (treeItems.size() == 0) {
-                    fTreeViewer.setSelection(new StructuredSelection());
-                    fTimeGraphViewer.setSelection(null);
-                    return;
-                }
                 // this prevents from scrolling up when selecting
                 // the partially visible tree item at the bottom
                 tree.select(treeItems.get(treeItems.size() - 1));
This page took 0.02586 seconds and 5 git commands to generate.