From 0e9ac5a99891a5c934db9335ff731fce19b8a3ca Mon Sep 17 00:00:00 2001
From: Phillipus
Date: Thu, 5 Dec 2024 10:54:37 +0000
Subject: [PATCH] Fix objects not selected on right-click
- This is a regression from 78f1d34723bed1d522f5c0be898542b5362026cc
- The workaround is to set the curesor to null when on Mac and right-clicking
- See https://github.com/archimatetool/archi/issues/1099
---
.../tools/PanningSelectionExtendedTool.java | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/com.archimatetool.editor/src/com/archimatetool/editor/diagram/tools/PanningSelectionExtendedTool.java b/com.archimatetool.editor/src/com/archimatetool/editor/diagram/tools/PanningSelectionExtendedTool.java
index 87f4e1883..df41f1e71 100644
--- a/com.archimatetool.editor/src/com/archimatetool/editor/diagram/tools/PanningSelectionExtendedTool.java
+++ b/com.archimatetool.editor/src/com/archimatetool/editor/diagram/tools/PanningSelectionExtendedTool.java
@@ -7,6 +7,8 @@
import org.eclipse.gef.tools.PanningSelectionTool;
+import com.archimatetool.editor.utils.PlatformUtils;
+
/**
* Extend the PanningSelectionTool so that Panning occurs on middle mouse button
*
@@ -21,16 +23,19 @@ protected boolean handleButtonDown(int which) {
refreshCursor();
}
which = 1;
+ return super.handleButtonDown(which);
}
/*
- * A right-click on the canvas will show the plus cursor for the marquee selection tool.
- * On macOS Sonoma the current cursor persists onto the context menu.
- * This is a general problem with Sonoma, see https://github.com/eclipse-platform/eclipse.platform.swt/issues/773
- * As the right-click is only for showing the context menu we don't need to see this cursor when right-clicking at all, so trap this here.
+ * A right-click on the canvas will briefly show the plus cursor for the marquee selection tool before showing the context menu.
+ * On macOS Sonoma and greater this cursor persists while the context menu is shown.
+ * This is a general problem with Mac, see https://github.com/eclipse-platform/eclipse.platform.swt/issues/773
+ * As right-click is only used for showing the context menu we don't need to see this cursor when right-clicking at all, so trap this here.
*/
- if(which == 3) {
- return true;
+ if(PlatformUtils.isMac() && which == 3 || (which == 1 && getCurrentInput().isControlKeyDown())) {
+ boolean result = super.handleButtonDown(which);
+ setCursor(null);
+ return result;
}
return super.handleButtonDown(which);