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);