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