Skip to content

desktop: Implement IME preediting #19888

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

Merged
merged 4 commits into from
Mar 27, 2025
Merged

desktop: Implement IME preediting #19888

merged 4 commits into from
Mar 27, 2025

Conversation

kjarosh
Copy link
Member

@kjarosh kjarosh commented Mar 22, 2025

Flash Player implements IME preediting as replacing the text with the preedit value and not dispatching events.

This implementation still lacks visual clues which text is being inputted.

This PR adds a simple test for IME based on how dead keys work on Linux with IME.

@kjarosh kjarosh added text Issues relating to text rendering/input A-desktop Area: Desktop Application input Issues relating to user input in Flash content T-compat Type: Compatibility with Flash Player ime Issues related to Input Method Editor labels Mar 22, 2025
@kjarosh kjarosh changed the title core: Implement IME preediting desktop: Implement IME preediting Mar 22, 2025
@kjarosh kjarosh force-pushed the ime branch 2 times, most recently from e7d3f37 to 74830aa Compare March 22, 2025 21:42
@kjarosh kjarosh added the waiting-on-review Waiting on review from a Ruffle team member label Mar 23, 2025
@kjarosh kjarosh removed the waiting-on-review Waiting on review from a Ruffle team member label Mar 27, 2025
kjarosh added 4 commits March 28, 2025 00:23
Flash Player implements IME preediting as replacing the text with the
preedit value and not dispatching events.

This implementation still lacks visual clues which text is being inputted.
Ignore spurious KeyUp events that may happen e.g. during IME.
We assume that in order for a key to generate KeyUp, it had to
generate KeyDown for the same exact KeyDescriptor.
This test verifies whether IME works properly, focusing on how dead
keys work on Linux.
@kjarosh kjarosh enabled auto-merge (rebase) March 27, 2025 23:23
@kjarosh kjarosh merged commit 286c13d into ruffle-rs:master Mar 27, 2025
22 checks passed
@kjarosh kjarosh deleted the ime branch March 27, 2025 23:35
Hancock33 added a commit to Hancock33/batocera.piboy that referenced this pull request Mar 30, 2025
-------------------------------------------------------------------------------------
azahar.mk eda2d6f9fa9efadc6196258628e3a33107675a11 # Version: Commits on Mar 28, 2025
-------------------------------------------------------------------------------------
Mark console as \linked\ when using the azahar artic setup tool (#833)

* Mark console as \linked\ when using the azahar artic setup tool

* Updated strings related to console linking

---------

Co-authored-by: OpenSauce04 <[email protected]>,

------------------------------------------------------------------------------------------
dolphin-emu.mk c7ede8a6b711ccf45d9c20762f5b224fa6fb664e # Version: Commits on Mar 28, 2025
------------------------------------------------------------------------------------------
Merge pull request #13461 from JoshuaVandaele/warningsbegone

Fix shadowed variable warnings and missing declarations,

------------------------------------------------------------------------------------------
duckstation.mk c7504e70166b4123b5791e8d3f1b5af050e168e3 # Version: Commits on Mar 28, 2025
------------------------------------------------------------------------------------------
dep/fmt: Bump to v11.1.4,

--------------------------------------------------------------------------------------
flycast.mk 130675aae30e0dc7682c4dc666a57e5de5bc7a78 # Version: Commits on Mar 28, 2025
--------------------------------------------------------------------------------------
gles3: use GL_R8 internal format for fog texture

regression due to 3469b7f

Issue #1886,

----------------------------------------------------
pcsx2.mk v2.3.245 # Version: Commits on Mar 27, 2025
----------------------------------------------------
- [GS/HW: Don't use coverage when doing Af or Ad blend.](PCSX2/pcsx2#12463)

,

-------------------------------------------------------------------------------------
ppsspp.mk c24cad9c8f62fa5e784cf234a6c9d2b1d7c66ad5 # Version: Commits on Mar 28, 2025
-------------------------------------------------------------------------------------
Merge pull request #20172 from hrydgard/crash-of-the-titans-umd

Enable slow UMD compat flags for Crash of the Titans.,

------------------------------------------------------------------------------------
rpcs3.mk 9c99e75939af118cddcf4c0fc5c45c295cbf38ee # Version: Commits on Mar 28, 2025
------------------------------------------------------------------------------------
SPU Debug: WrDec and LSA view

Report the last written value to WrDec.,

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

* avm2: Make verifier translate ops as it reads them by @Lord-McSweeney in ruffle-rs/ruffle#19876

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

* desktop: Implement IME preediting by @kjarosh in ruffle-rs/ruffle#19888

**Full Changelog**: ruffle-rs/ruffle@nightly-2025-03-27...nightly-2025-03-28,

----------------------------------------------------
ryujinx.mk 1.3.24 # Version: Commits on Mar 28, 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.24/ryujinx-canary-1.3.24-win_x64.zip) |

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

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

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

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

**[Full Changelog](https://git.ryujinx.app/ryubing/ryujinx/-/compare/Canary-1.3.23...Canary-1.3.24)**,

--------------------------------------------------------------------------------------
scummvm.mk c35d72a2d4c7ad234b49ef5f00ed2e9789af54df # Version: Commits on Mar 28, 2025
--------------------------------------------------------------------------------------
SCUMM: (MI2) - fix bug no. 15802

(\SCUMM: MI2: iMUSE bug on Booty Island\),

--------------------------------------------------------------------------------------
shadps4.mk 751a23af0f5a9612b8e28af1400896a3026ee331 # Version: Commits on Mar 28, 2025
--------------------------------------------------------------------------------------
[ci skip] Qt GUI: Update Translation. (#2703)

Co-authored-by: georgemoralis <[email protected]>,

---------------------------------------------------------------------------------------
thextech.mk 8354b2dad0d0fcf7b6de326ae8db33d440f71a6d # Version: Commits on Mar 28, 2025
---------------------------------------------------------------------------------------
Update mbediso,

-------------------------------------------------
vice.mk r45600 # Version: Commits on Mar 28, 2025
-------------------------------------------------
forgot :)

git-svn-id: https://svn.code.sf.net/p/vice-emu/code/trunk@45600 379a1393-f5fb-40a0-bcee-ef074d9b53f7,

-------------------------------------------------------------------------------------
vita3k.mk f370ccc1b02d590c102f91a056f274fae26e331f # Version: Commits on Mar 26, 2025
-------------------------------------------------------------------------------------
Update SceRtcUser.cpp

Fix the last argument type of sceRtcTickAddDays, sceRtcTickAddHours and sceRtcTickAddYears fixing freezes and bad dates in games.,

-----------------------------------------------------------------------------------
xemu.mk 672e9cd553df9fa4629ecdc49efacf310d9994b0 # Version: Commits on Mar 11, 2025
-----------------------------------------------------------------------------------
nv2a: Handle SET_SPECULAR_ENABLE,

-----------------------------------------------------------------------------------------
sdl3_mixer.mk 698aaa2e2fd18900f0e28132a8de9b48538d4857 # Version: Commits on Mar 28, 2025
-----------------------------------------------------------------------------------------
music_wavpack.c: added a comment about correction files loading.

(cherry picked from commit 7738cdc74fa0ca83a7a756716924676d401137c2),

------------------------------------------------------------------------------------
box64.mk 0a59695fb37315962168188a1db6d2685d09c6c2 # Version: Commits on Mar 28, 2025
------------------------------------------------------------------------------------
[LA64_DYNAREC] Added more MMX opcodes (#2477),

---------------------------------------------------------------------------------------
etlegacy.mk 0a0065f27bc3e0a514dbf6b21b5c55f70e3dc9d8 # Version: Commits on Mar 24, 2025
---------------------------------------------------------------------------------------
easybuild.bat: Add 'quickbuild' command

To build without cleaning and regenerating project files, both of which

take quite some time.,

-------------------------------------------------------------------------------------------
jazz2-native.mk f1d05534d42c51dbb6968c935640dc746f33da1b # Version: Commits on Mar 28, 2025
-------------------------------------------------------------------------------------------
Fixed build,

----------------------------------------------------------------------------------
stk.mk 19a0df17c77fdec797dd319aabddbe5ef06ac57f # Version: Commits on Mar 28, 2025
----------------------------------------------------------------------------------
Fix OptionsScreenVideo::setImageQuality for reloading live

Only handle mesh texture reloading for now,

---------------------------------------------------------------------------------------------
theforceengine.mk ffef7863e87e1de97c4091034352119a139003e7 # Version: Commits on Mar 27, 2025
---------------------------------------------------------------------------------------------
Update README.md remove mention of DISABLE_SYSMIDI (#509)

- DISABLE_SYSMIDI seems to have been migrated to ENABLE_SYSMIDI in da751a97a27a585f77cc168aa53c5e0a6476d6ce and auto discovery has been implemented,

----------------------------------------------------------------------------------------
retroarch.mk cb69d250b0d1765c93a3056d3007835965e762ae # Version: Commits on Mar 28, 2025
----------------------------------------------------------------------------------------
Merge pull request #17739 from zoltanvb/linuxraw_keyboard

Extend keyboard input for linuxraw input driver,

-------------------------------------------------------------------------------------------------------
libretro-beetle-pce-fast.mk 4ee33ff536f14295c178a037f9b5d5a960ce3c6f # Version: Commits on Mar 28, 2025
-------------------------------------------------------------------------------------------------------
Fetch translations & Recreate libretro_core_options_intl.h,

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

-----------------------------------------------------------------------------------------------
libretro-flycast.mk 130675aae30e0dc7682c4dc666a57e5de5bc7a78 # Version: Commits on Mar 28, 2025
-----------------------------------------------------------------------------------------------
gles3: use GL_R8 internal format for fog texture

regression due to 3469b7f

Issue #1886,

-----------------------------------------------------------------------------------------------------
libretro-mame2003-plus.mk d4cbcad0a0b1166eb02efa6cfaa41d00bdc2c690 # Version: Commits on Mar 28, 2025
-----------------------------------------------------------------------------------------------------
Revert,

----------------------------------------------------------------------------------------------
libretro-ppsspp.mk c24cad9c8f62fa5e784cf234a6c9d2b1d7c66ad5 # Version: Commits on Mar 28, 2025
----------------------------------------------------------------------------------------------
Merge pull request #20172 from hrydgard/crash-of-the-titans-umd

Enable slow UMD compat flags for Crash of the Titans.,

-----------------------------------------------------------------------------------------------
libretro-scummvm.mk c35d72a2d4c7ad234b49ef5f00ed2e9789af54df # Version: Commits on Mar 28, 2025
-----------------------------------------------------------------------------------------------
SCUMM: (MI2) - fix bug no. 15802

(\SCUMM: MI2: iMUSE bug on Booty Island\),

-------------------------------------------------------------------------------------------------
libretro-vaporspec.mk 52818314f97736b22e8ac0e1e9e3685cfa10f710 # Version: Commits on Mar 28, 2025
-------------------------------------------------------------------------------------------------
remove incorrect message,

--------------------------------------------------------------------------------------------
libretro-vice.mk e4dbeb596a690e7e863435b35e5cc52387319a1d # Version: Commits on Mar 28, 2025
--------------------------------------------------------------------------------------------
Separate paddles type to 'split' and 'raw',

-------------------------------------------------------------------------------------
dhewm3.mk b050991ed227a320ab0ad9801bf9fbd8f3b2d416 # Version: Commits on Mar 28, 2025
-------------------------------------------------------------------------------------
Merge pull request #653 from DanielGibson/cst-ui-improvements

Improvements in support for cst anchors in GUIs,
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 input Issues relating to user input in Flash content 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.

2 participants