RFR: 8305418: [Linux] Replace obsolete XIM as Input Method Editor [v10]

Martin Fox mfox at openjdk.org
Tue Nov 28 20:58:29 UTC 2023


On Thu, 28 Sep 2023 01:05:20 GMT, Thiago Milczarek Sayao <tsayao at openjdk.org> wrote:

>> This replaces obsolete XIM and uses gtk api for IME.
>> Gtk uses [ibus](https://github.com/ibus/ibus)
>> 
>> Gtk3+ uses relative positioning (as Wayland does), so I've added a Relative positioning on `InputMethodRequest`.
>> 
>> [Screencast from 17-09-2023 21:59:04.webm](https://github.com/openjdk/jfx/assets/30704286/6c398e39-55a3-4420-86a2-beff07b549d3)
>
> Thiago Milczarek Sayao has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Make it a default method for compatibility

modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/GtkView.java line 105:

> 103:     @Override
> 104:     protected void _finishInputMethodComposition(long ptr) {
> 105:         //nothing

See [JDK-8320912](https://bugs.openjdk.org/browse/JDK-8320912). This routine is called when the focus moves from one TextInputControl to another. Doing nothing here leaves the previous field in a bad state.

modules/javafx.graphics/src/main/native-glass/gtk/GlassApplication.cpp line 450:

> 448:     }
> 449: 
> 450:     if (event->type == GDK_KEY_PRESS && ctx != NULL && ctx->filterIME(event)) {

In the previous code both PRESS and RELEASE events were sent to the filter and gtk_im_context_filter_keypress says that it can filter both. Is there some particular reason you're not calling this on RELEASE events?

modules/javafx.graphics/src/main/native-glass/gtk/glass_window.h line 34:

> 32: #include <set>
> 33: #include <vector>
> 34: #include <queue>

Doesn't look like you're using this.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1080#discussion_r1408394009
PR Review Comment: https://git.openjdk.org/jfx/pull/1080#discussion_r1408398206
PR Review Comment: https://git.openjdk.org/jfx/pull/1080#discussion_r1408399843


More information about the openjfx-dev mailing list