On Wed, 28 Jun 2023 22:05:50 GMT, Nikita Provotorov <[email protected]> wrote:
> Have you tried to use just _java.awt.Component#getLocationOnScreen_? On linux, IME need the offset position of JTextArea from focus window(frame/dialog). So we use a loop to get it. > src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c line 870: > >> 868: and block the candidate window to move with caret. >> 869: */ >> 870: XIMStyle on_the_spot_styles = XIMPreeditNothing, > > `XNSpotLocation` can't be used together with `XIMPreeditNothing`. Look at the > [specification](https://www.x.org/releases/X11R7.6/doc/libX11/specs/libX11/libX11.html#Input_Methods) > of `XNSpotLocation`: >> When specified to any input method other than XIMPreeditPosition, this XIC >> value is ignored. > > So even if this works with some IM on some distribution, there is no > guarantee that it works more or less everywhere. 1, I tested some linux, only ubuntu has problem. Is there a macro to tell us the system is ubuntu? 2, When using XIMPreeditPosition, the XCreateIC() return NULL. So suggest that we fix the problem first, and a comment with reason. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13055#discussion_r1298963346 PR Review Comment: https://git.openjdk.org/jdk/pull/13055#discussion_r1298963422
