--- old/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m 2019-09-25 16:25:46.000000000 +0530 +++ new/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m 2019-09-25 16:25:45.000000000 +0530 @@ -951,8 +951,14 @@ NSUInteger utf16Length = [useString lengthOfBytesUsingEncoding:NSUTF16StringEncoding]; NSUInteger utf8Length = [useString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; BOOL aStringIsComplex = NO; + + CFStringRef layoutID = TISGetInputSourceProperty(TISCopyCurrentKeyboardInputSource(), kTISPropertyInputSourceID); + NSString *str = (NSString *)layoutID; + unichar codePoint = [useString characterAtIndex:0]; + if ((utf16Length > 2) || - ((utf8Length > 1) && [self isCodePointInUnicodeBlockNeedingIMEvent:[useString characterAtIndex:0]])) { + ((utf8Length > 1) && [self isCodePointInUnicodeBlockNeedingIMEvent:[useString characterAtIndex:0]]) || + ((codePoint == 0x5c) && ([(NSString *)layoutID containsString:@"Kotoeri"]))) { aStringIsComplex = YES; }