From 9ae66afc465160bba75b389514f2a1eaec89993c Mon Sep 17 00:00:00 2001
From: Steven Loomis <srl@openjdk.org>
Date: Fri, 1 Nov 2024 12:32:11 +0000
Subject: [PATCH] 8195675: Call to insertText with single character from custom
 Input Method ignored

Backport-of: b8f2ec9091f9f7e5f4611991d04dd8aa113b94fd
---
 src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m b/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m
index 8e44052333c..20d417dbcc0 100644
--- a/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m
+++ b/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m
@@ -38,6 +38,9 @@
 // keyboard layout
 static NSString *kbdLayout;
 
+// Constant for keyman layouts
+#define KEYMAN_LAYOUT "keyman"
+
 @interface AWTView()
 @property (retain) CDropTarget *_dropTarget;
 @property (retain) CDragSource *_dragSource;
@@ -259,7 +262,7 @@ static BOOL shouldUsePressAndHold() {
 
 - (void) keyDown: (NSEvent *)event {
     fProcessingKeystroke = YES;
-    fKeyEventsNeeded = YES;
+    fKeyEventsNeeded = ![(NSString *)kbdLayout containsString:@KEYMAN_LAYOUT];
 
     // Allow TSM to look at the event and potentially send back NSTextInputClient messages.
     [self interpretKeyEvents:[NSArray arrayWithObject:event]];
@@ -961,7 +964,7 @@ static jclass jc_CInputMethod = NULL;
 
     if ((utf16Length > 2) ||
         ((utf8Length > 1) && [self isCodePointInUnicodeBlockNeedingIMEvent:codePoint]) ||
-        ((codePoint == 0x5c) && ([(NSString *)kbdLayout containsString:@"Kotoeri"]))) {
+        [(NSString *)kbdLayout containsString:@KEYMAN_LAYOUT]) {
         aStringIsComplex = YES;
     }
 
-- 
GitLab