Open HolgerGottChristensen opened 9 months ago
has to do with the IME implementation
Very likely.
Thanks for the detailed investigation, I don't have the time to conjure up a fix this week, but might take a stab at it later (especially if reminded).
@madsmtm Here is your friendly reminder ๐
Emojis definitely would be nice to have natively supported in popup
I love alacritty. If this issue gets fixed it would be a near perfect experience.
@madsmtm here's another friendly reminder. :D
If I knew rust, I'd pick this up myself because both alacritty & neovide is working best for me right now.
I have an application based on winit 0.29.7. On MacOS you can open the character viewer using the fn/๐ key.
This seem to be the preferred way of inserting symbols and emojis into text fields in an application. When I double click one of the characters (which inserts it into other applications), no events are sent from winit.
https://github.com/rust-windowing/winit/assets/11473146/af7daf52-b795-4b56-8fec-0074e2b55cd7
I have experimented more with winit, and it seems that it has to do with the IME implementation. When I enable IME it still does not send events, but when IME has started, for example by typing the ยจ character, I can then insert emojis by double clicking on the character viewer.
https://github.com/rust-windowing/winit/assets/11473146/7aefb8ca-2d02-4cf4-90e6-8f0ee68ae215
When I end the IME for example by typing e, the events of the character viewer stops being sent again.
I looked into the MacOS implementation of winit. The events from MacOS are sent through the
insertText:replacementRange:
event handler in the filesrc/platform_impl/macos/view.rs
file.I have tried debugging the issue, and inserting a dbg in the method:
When clicking the character viewer, the following is printed, when IME is not started:
When IME is started(by pressing ยจ), it prints the following:
and sends the events:
If anything is missing I will try my best to provide it.