From 57f76d39463b3336c9d7a2d1aee25614264b7658 Mon Sep 17 00:00:00 2001 From: rich2014 Date: Tue, 21 Nov 2023 00:24:47 +0800 Subject: [PATCH] Cocoa: improve #40608: special processing for '+/=' as KeyEquivalent --- lcl/interfaces/cocoa/cocoamenus.pas | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lcl/interfaces/cocoa/cocoamenus.pas b/lcl/interfaces/cocoa/cocoamenus.pas index 34e5acc554..7141ca6942 100644 --- a/lcl/interfaces/cocoa/cocoamenus.pas +++ b/lcl/interfaces/cocoa/cocoamenus.pas @@ -140,6 +140,16 @@ begin ShiftKeyMask := ShiftKeyMask + NSControlKeyMask; if ssMeta in s then ShiftKeyMask := ShiftKeyMask + NSCommandKeyMask; + + // as a key , +/= is a rare case, both + and = are used as primary keys. + // ‘Shift+=’ for ‘+’ + // ‘=’ for ‘=' + if key.isEqualToString(NSSTR('+')) then begin + if (ShiftKeyMask and NSShiftKeyMask)=0 then + key := NSStr('=') + else + ShiftKeyMask := ShiftKeyMask - NSShiftKeyMask; + end; end; procedure ToggleAppNSMenu(mn: NSMenu; ALogicalEnabled: Boolean);