Add inline IME support to wxStyledTextCtrl (PR #26757)

33 views
Skip to first unread message

Ryan Lucia

unread,
Jul 30, 2026, 3:40:09 PM (5 days ago) Jul 30
to wx-...@googlegroups.com, Subscribed

Implement native pre-edit handling for wxGTK and Cocoa using Scintilla's tentative input support.

Use a private text input client bridge to complete Cocoa NSTextInputClient and support GTK pre-edit callbacks without changing the public API or existing class ABI.

Inline composition is now the default on GTK and Cocoa. Committed IME text generates wxEVT_STC_CHARADDED instead of wxEVT_CHAR; wxSTC_IME_WINDOWED retains the previous event path.

Document platform defaults and add regression tests for composition, UTF-16 ranges, replacement ranges, undo, and mode switching.

Closes #26228.


You can view, comment on, or merge this pull request online at:

  https://github.com/wxWidgets/wxWidgets/pull/26757

Commit Summary

  • 33835d5 Add inline IME support to wxStyledTextCtrl

File Changes

(13 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/26757@github.com>

VZ

unread,
Jul 30, 2026, 5:31:36 PM (5 days ago) Jul 30
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#26757)

Thank you for working on this!

This is, of course, very welcome. I haven't yet looked at it in any details, but will do it when you mark it as ready or before if you think it's already worth doing it. Unfortunately I don't know much about IME, especially under non-Windows platforms, so review/feedback from any people more familiar with it would be very welcome. And so would be testing, as I'm not even sure about how to do it (i.e. how is a properly working IME supposed to behave).


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/26757/c5136470282@github.com>

Ryan Lucia

unread,
Jul 30, 2026, 7:26:43 PM (5 days ago) Jul 30
to wx-...@googlegroups.com, Subscribed
CoffeeFlux left a comment (wxWidgets/wxWidgets#26757)

We've been having to work around this in Aegisub, so after I'm done testing this I'll be able to confirm at least one consuming app works well with it. We've had a workaround for a decade and I'd like to shore that up with proper support. I'll mark this as ready for review after I take a fresh look through it tomorrow and get a chance to test it more carefully in Aegisub itself! (And I imagine some other people will kick the tires on it there, since proper IME support is much-desired.)


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/26757/c5137303459@github.com>

arch1t3cht

unread,
Aug 1, 2026, 9:00:43 AM (3 days ago) Aug 1
to wx-...@googlegroups.com, Subscribed
arch1t3cht left a comment (wxWidgets/wxWidgets#26757)

I tested this on macOS using wxWidget's stctest sample program. IME text input definitely works much better (in particular working at all) but I still noticed two quirks:

  1. Picking one of the IME suggestions using Space and then pressing Enter to accept it instead cancels the input and inserts a new line. (Specifically: Use a Japanese IME, type nihongo, then press Space, and then press Enter. This will result in only a newline and no text being inserted. Pressing Enter directly to accept the default suggestion works fine.)
  2. Using a Vietnamese (Telex) IME, typing a word (say, foo) and then pressing Space shows an assertion error assert "!m_lastKeyDownWXSent" failed in SetKeyDownSent().


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/26757/c5151529004@github.com>

Ryan Lucia

unread,
Aug 2, 2026, 1:15:13 PM (2 days ago) Aug 2
to wx-...@googlegroups.com, Push

@CoffeeFlux pushed 1 commit.

  • d839d99 Add inline IME support to wxStyledTextCtrl


View it on GitHub or unsubscribe.


Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/26757/before/33835d52417db0bffd54c50af4239e5265319249/after/d839d9902cb220f00ef2de8042c71f1440bdb69a@github.com>

Ryan Lucia

unread,
Aug 3, 2026, 8:07:38 PM (17 hours ago) Aug 3
to wx-...@googlegroups.com, Push

@CoffeeFlux pushed 1 commit.

  • ab8cc6c Add inline IME support to wxStyledTextCtrl


View it on GitHub or unsubscribe.


Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/26757/before/d839d9902cb220f00ef2de8042c71f1440bdb69a/after/ab8cc6cc57b5802e7f16833ca488be4e3f48c617@github.com>

Reply all
Reply to author
Forward
0 new messages