Skip to content

IME Support #248

@lunabunn

Description

@lunabunn

Update (April 2021):
Since this issue was initially opened, good progress has been made on IME support.
#258 Implemented proper candidate window positioning for egui_web
#278 Implemented IME composition events for egui as well as logic to fire them for egui_web
This means egui_web, as well as coreegui, now has IME support. (Thanks @n2 !)

However, eframe on native targets still DOES NOT have IME support. And with egui-glium (and many other winit-based egui backends), it is unlikely support will land any time in the near future. This is not an egui issue but rather an upstream issue. The biggest blocker is rust-windowing/winit#1497. winit currently does not have IME support, which means most of the Rust ecosystem does not have IME support. Glium/glutin are no exception.

egui-miniquad, despite not relying on winit, also has a similar issue because sokol-app, miniquad's windowing library of choice, doesn't have IME support either. The only egui backend listed in the README that would be able to support IMEs is egui_sdl2_gl. I opened an issue there.


Original issue:
Describe the bug

There are no events available for IME composition, nor do text inputs display IME composition strings. The candidate window is not shown in the appropriate location.

To Reproduce
Steps to reproduce the behavior:

  1. See that https://docs.rs/egui/0.10.0/egui/enum.Event.html does not have any IME-related events.
  2. Open up any egui program, regardless of the backend impl, and observe the lack of IME support.

Expected behavior
There are events available for when the IME composition string/state changes, and text inputs display said string/state correctly. The candidate window should be shown right below the cursor.

Screenshots
N/A

Desktop (please complete the following information):
N/A

Smartphone (please complete the following information):
N/A

Additional context
IME support is a(n often overlooked) must for many people around the world in any sort of production GUI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or requesthelp wantedExtra attention is neededtextProblems related to text

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions