From c2923ac57796be5e202632da71bd617ef3a4eed4 Mon Sep 17 00:00:00 2001 From: Daijiro Fukuda Date: Wed, 27 Apr 2022 13:59:43 +0900 Subject: [PATCH] macOS: Apply preeditCursor to position of candidate window --- src/cocoa_window.m | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/cocoa_window.m b/src/cocoa_window.m index fc6dd905..eea8c032 100644 --- a/src/cocoa_window.m +++ b/src/cocoa_window.m @@ -772,8 +772,17 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; - (NSRect)firstRectForCharacterRange:(NSRange)range actualRange:(NSRangePointer)actualRange { - const NSRect frame = [window->ns.view frame]; - return NSMakeRect(frame.origin.x, frame.origin.y, 0.0, 0.0); + int x = window->preeditCursorPosX; + int y = window->preeditCursorPosY; + int h = window->preeditCursorHeight; + + const NSRect frame = + [window->ns.object contentRectForFrameRect:[window->ns.object frame]]; + + return NSMakeRect(frame.origin.x + x, + frame.origin.y + frame.size.height - y, + 0.0, + h); } - (void)insertText:(id)string replacementRange:(NSRange)replacementRange