Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

desktop: Implement basic IME support #19666

Merged
merged 5 commits into from
Mar 20, 2025
Merged

desktop: Implement basic IME support #19666

merged 5 commits into from
Mar 20, 2025

Conversation

kjarosh
Copy link
Member

@kjarosh kjarosh commented Mar 1, 2025

The basic IME support includes displaying popups in roughly the right position, and handling IME commit events without preediting yet.

Tested manually with Anthy (no automated tests yet due to lack of preediting).

IME preference is also added to the GUI (disabled by default):
image

@kjarosh kjarosh added text Issues relating to text rendering/input A-desktop Area: Desktop Application T-compat Type: Compatibility with Flash Player ime Issues related to Input Method Editor waiting-on-review Waiting on review from a Ruffle team member labels Mar 1, 2025
@kjarosh kjarosh force-pushed the ime branch 2 times, most recently from 27f9244 to 5e6787d Compare March 2, 2025 22:27
@evilpie
Copy link
Collaborator

evilpie commented Mar 16, 2025

Can you describe why we need the notification sender mechanism? This seems like a more generic approach compared to what we have done before with e.g. the DesktopUiBackend.

@kjarosh
Copy link
Member Author

kjarosh commented Mar 16, 2025

Can you describe why we need the notification sender mechanism? This seems like a more generic approach compared to what we have done before with e.g. the DesktopUiBackend.

That's a good point. I haven't thought of it this way, and the usage is similar to opening/closing the virtual keyboard. We need to inform the frontend whether we can or cannot accept IME events.

Shall I rewrite it to use the DesktopUiBackend or is this approach better?

@kjarosh
Copy link
Member Author

kjarosh commented Mar 20, 2025

I think the main advantage of having the notification mechanism is that it's easier to test, we can include expected notifications next to events from input.json

@evilpie
Copy link
Collaborator

evilpie commented Mar 20, 2025

There might be some stuff we could move to this mechanism.

@kjarosh kjarosh removed the waiting-on-review Waiting on review from a Ruffle team member label Mar 20, 2025
@kjarosh kjarosh enabled auto-merge (rebase) March 20, 2025 22:44
kjarosh added 5 commits March 20, 2025 23:51
On top of player events, which allow sending information from the
frontend to the player, player notifications are a way of communicating
back from the player to the frontend.
The basic IME support includes displaying popups in roughly the right
position, and handling IME commit events without preediting yet.
Implements IME support (currently still limited by the core impl).
@kjarosh kjarosh merged commit 4b6536e into ruffle-rs:master Mar 20, 2025
22 checks passed
@kjarosh kjarosh deleted the ime branch March 20, 2025 23:05
Hancock33 added a commit to Hancock33/batocera.piboy that referenced this pull request Mar 23, 2025
-------------------------------------------------------------------------------------
azahar.mk 70be7d987e89c001b1f7fc8c72a4e7dd1f181599 # Version: Commits on Mar 21, 2025
-------------------------------------------------------------------------------------
video_core: Fixed emulation window artefacts on OpenGL + Wayland,

----------------------------------------------------
clk.mk 2025-03-20 # Version: Commits on Mar 20, 2025
----------------------------------------------------
This release corrects:

* a potential crash at startup for the emulated Macintosh Plus; and

* likely failure of mouse movement to register after window resizing on macOS hosts.,

------------------------------------------------------------------------------------------
duckstation.mk 115ba4433c59b750476f0f42286347183c6a96f7 # Version: Commits on Mar 21, 2025
------------------------------------------------------------------------------------------
CPU/Interpreter: Emulate lo/hi read stall after mult/div

Still need to do the recompiler.,

-----------------------------------------------------------------------------------------
lightspark.mk c14e2532c28bd7a21ee953326a82fa93667c34a3 # Version: Commits on Mar 21, 2025
-----------------------------------------------------------------------------------------
fix OpenGL runtime errors when compiling with ENABLE_GLES2

this improves handling of Depth/Stencil renderbuffers for OpenGL ES.,

----------------------------------------------------
pcsx2.mk v2.3.234 # Version: Commits on Mar 20, 2025
----------------------------------------------------
- [GS/HW: Adjust AA1 draw behavior.](PCSX2/pcsx2#12446)

,

-------------------------------------------------------------------------------------
ppsspp.mk 112bd904b88b15c2761999630712451fbdd22cd2 # Version: Commits on Mar 21, 2025
-------------------------------------------------------------------------------------
Merge pull request #20141 from hrydgard/digimon-fix

PPGe/savedata: Add a bunch of safety checks for png images.,

------------------------------------------------------------------------------------
rpcs3.mk cd25e91321829cdb48939b04a7efcf4fe95fadb7 # Version: Commits on Mar 19, 2025
------------------------------------------------------------------------------------
VS/MSVC: Enable LTCG and GL on release builds,

---------------------------------------------------------------
ruffle.mk nightly-2025-03-21 # Version: Commits on Mar 21, 2025
---------------------------------------------------------------
## What's Changed

* web: Reload with canvas when webglcontextlost and 8+ instances exist by @danielhjacobs in ruffle-rs/ruffle#19822

* chore: Update translations by @RuffleBuild in ruffle-rs/ruffle#19866

* desktop: Implement basic IME support by @kjarosh in ruffle-rs/ruffle#19666

**Full Changelog**: ruffle-rs/ruffle@nightly-2025-03-18...nightly-2025-03-21,

----------------------------------------------------
ryujinx.mk 1.3.17 # Version: Commits on Mar 21, 2025
----------------------------------------------------
# Canary builds:

These builds are experimental and may sometimes not work, use [regular builds](https://github.com/Ryubing/Canary-Releases/releases/latest) instead if that sounds like something you don't want to deal with.

| Platform | Artifact |

|--|--|

| Windows 64-bit | [Canary Windows Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.17/ryujinx-canary-1.3.17-win_x64.zip) |

| Windows ARM 64-bit | [Canary Windows ARM Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.17/ryujinx-canary-1.3.17-win_arm64.zip) |

| Linux 64-bit | [Canary Linux Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.17/ryujinx-canary-1.3.17-linux_x64.tar.gz) |

| Linux ARM 64-bit | [Canary Linux ARM Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.17/ryujinx-canary-1.3.17-linux_arm64.tar.gz) |

| macOS | [Canary macOS Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.17/ryujinx-canary-1.3.17-macos_universal.app.tar.gz) |

**[Full Changelog](https://git.ryujinx.app/ryubing/ryujinx/-/compare/Canary-1.3.16...Canary-1.3.17)**

--------------------------------------------------------------------------------------
scummvm.mk 3d4e4649d0af0b328a32377d30a7302b9fa3937a # Version: Commits on Feb 23, 2025
--------------------------------------------------------------------------------------
DISTS: IOS7: icons—fix white corners’ artifacting

(cherry picked from commit d9fa69dd04c1a5d4b24176502585313d33e59764),

--------------------------------------------------------------------------------------
shadps4.mk 2e54afb295035e601e5b7189cda56441f201397d # Version: Commits on Mar 21, 2025
--------------------------------------------------------------------------------------
fix debug version for cryptopp (#2664),

---------------------------------------------------------------------------------------------
solarus-engine.mk a4590aaf4814a7510ebc324fbe7b725301427e8a # Version: Commits on Mar 20, 2025
---------------------------------------------------------------------------------------------
Merge branch 'hhromic/hqx-warning' into 'dev'

-----------------------------------------------------------------------------------------
rpi-eeprom.mk 1bd0a1052b2e74d7af04de18d30b5edb12d8a423 # Version: Commits on Mar 21, 2025
-----------------------------------------------------------------------------------------
patch: @@ -40,8 +40,11 @@

     multiple: true

     options:

       - Raspberry Pi 5

+      - Raspberry Pi 500

       - Raspberry Pi 4 Mod. B

       - Raspberry Pi 400

+      - Raspberry Pi CM5

+      - Raspberry Pi CM5 Lite

       - Raspberry Pi CM4

       - Raspberry Pi CM4 Lite

       - Raspberry Pi CM4-S

------------------------------------------------------------------------------------
box64.mk 10cbb3c8a90c06fc76cdcffbb0f64bc789d52fdd # Version: Commits on Mar 21, 2025
------------------------------------------------------------------------------------
[ARM64_DYNAREC] Added 67 66 0F 76/EF opcodes (for #1046),

------------------------------------------------------------------------------------------
devilutionx.mk 176819a072ab828f88e5a692193fa274b29564e5 # Version: Commits on Mar 21, 2025
------------------------------------------------------------------------------------------
Make RecreateItem() take whole dwBuff flag as argument (#7870),

-------------------------------------------------------------------------------------------
jazz2-native.mk eb801abd9cdfdef20cb76750c75b97c4033d0b9a # Version: Commits on Mar 21, 2025
-------------------------------------------------------------------------------------------
Fixed build,

----------------------------------------------------------------------------------
stk.mk 295631c994b664e39485fa0a29de64bf471faaab # Version: Commits on Mar 21, 2025
----------------------------------------------------------------------------------
Disable 1000 fps and 200% scale nonsense on mobile,

----------------------------------------------------------------------------------------------------
sdl2-gamecontrollerdb.mk 90d258f1b6e15b151ce25620cb52054dcefc4c28 # Version: Commits on Mar 20, 2025
----------------------------------------------------------------------------------------------------
Microsoft Xbox One 045e:02ea (#836)

* Microsoft Xbox One 045e:02ea

* Remove CRC

---------

Co-authored-by: Mathijs Futselaar <mathijs@matttt.nl>

Co-authored-by: Alynne <alviscera@gmail.com>,

----------------------------------------------------------------------------------------
retroarch.mk 5adaaf7851f73182d51dc04dde03f80a9c8f0d17 # Version: Commits on Mar 21, 2025
----------------------------------------------------------------------------------------
Merge pull request #17717 from pstef/silence-warnings

Silence even more warnings,

---------------------------------------------------------------------------------------------
vulkan-samples.mk 8547ce1022a19870d3e49075b5b08ca2d11c8773 # Version: Commits on Mar 20, 2025
---------------------------------------------------------------------------------------------
fix: correct typo in README for ray tracing reflection sample (#1291)

* fix: correct typo in README for ray tracing reflection sample

* fix: update copyright year in README for ray tracing reflection sample,

----------------------------------------------------------------------------------------
doomretro.mk 02cea27754a489bd8e586655899c08639adc40dd # Version: Commits on Mar 21, 2025
----------------------------------------------------------------------------------------
Allow midtextures to be translucent and have a brightmap

Fixes #865,

--------------------------------------------------------------------------------------
vkquake.mk 82b81642bd79846f30e02e785d173e321629af37 # Version: Commits on Mar 18, 2025
--------------------------------------------------------------------------------------
Import DP_SV_NODRAWTOCLIENT and DP_SV_DRAWONLYTOCLIENT from QSS (by @NHogweed),

-----------------------------------------------------------------------------------------
sonic3-air.mk 5715ab99b280ea27af23d51805fc784d01acfd09 # Version: Commits on Mar 20, 2025
-----------------------------------------------------------------------------------------
Fixes in lemonscript after static code analysis,

-----------------------------------------------------------------------------------
tr1x.mk e7809774f448ff69f87976a48485b94ed135bd79 # Version: Commits on Mar 21, 2025
-----------------------------------------------------------------------------------
stats: fix the distance travelled display when over 1000m

Resolves #2659.,

-----------------------------------------------------------------------------------
tr2x.mk e7809774f448ff69f87976a48485b94ed135bd79 # Version: Commits on Mar 21, 2025
-----------------------------------------------------------------------------------
stats: fix the distance travelled display when over 1000m

Resolves #2659.,

--------------------------------------------------------------------------------------------------
libretro-beetle-psx.mk 232bdf101095122cfc4b904b219d5e64a9d36528 # Version: Commits on Mar 21, 2025
--------------------------------------------------------------------------------------------------
Fetch translations & Recreate libretro_core_options_intl.h,

----------------------------------------------------------------------------------------------
libretro-ppsspp.mk 112bd904b88b15c2761999630712451fbdd22cd2 # Version: Commits on Mar 21, 2025
----------------------------------------------------------------------------------------------
Merge pull request #20141 from hrydgard/digimon-fix

PPGe/savedata: Add a bunch of safety checks for png images.,

-----------------------------------------------------------------------------------------------
libretro-scummvm.mk 3d4e4649d0af0b328a32377d30a7302b9fa3937a # Version: Commits on Feb 23, 2025
-----------------------------------------------------------------------------------------------
DISTS: IOS7: icons—fix white corners’ artifacting

(cherry picked from commit d9fa69dd04c1a5d4b24176502585313d33e59764),

---------------------------------------------------------------------------------------------
libretro-vba-m.mk 57211ddc7712a58da98bc378e77e13bc6df0ff67 # Version: Commits on Mar 20, 2025
---------------------------------------------------------------------------------------------
translations: transifex pull

Signed-off-by: Rafael Kitover <rkitover@gmail.com>,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-desktop Area: Desktop Application ime Issues related to Input Method Editor newsworthy T-compat Type: Compatibility with Flash Player text Issues relating to text rendering/input
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants