Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Support IME events abstraction #7315

@liquidhelium

Description

@liquidhelium

What problem does this solve or what need does it fill?

To be honest, not having input method support can be seen as a bug, which even makes me discouraged from bevy. Whether it is a GUI integration made by someone else (such as bevy_egui) or a GUI system made by ourselves, sooner or later it will have to deal with the problem of input methods. For users like us, GUI systems without input method support are not usable, so I hope we can take a small step in this regard by providing the ability to handle IME events with an abstract API.

What solution would you like?

The definition of these events should probably be put in bevy_window/events.rs, and then we convert these events in the backend. For winit, the definition of these events can be found at winit::event::ime. Notice that we need to add methods that provide access to window.set_ime_position.

What alternative(s) have you considered?

I guess you can only enter CJK characters by copy-pasting. I have to say it's very bad UX.

Additional context

Here is a pull request that adds IME support to egui_winit: emilk/egui#2046

and a solution for web: emilk/egui#253

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-InputPlayer input via keyboard, mouse, gamepad, and moreC-FeatureA new feature, making something new possible

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions