Regression: CorvusSKK candidate window invisible in Windows Terminal Preview 1.24.251216004 #23946

Closed
opened 2026-01-31 08:56:57 +00:00 by claunia · 1 comment
Owner

Originally created by @hirsaeki on GitHub (Jan 8, 2026).

Windows Terminal version

1.24.251216004

Windows build number

26200.7462

Other Software

CorvusSKK: 3.3.1

Steps to reproduce

  1. Install Windows Terminal Preview 1.24.251216004-preview.
  2. Ensure CorvusSKK 3.3.1 is installed and set as the current IME.
  3. Launch Windows Terminal Preview (non-elevated; not running as Administrator).
  4. Open a tab (e.g., PowerShell).
  5. Switch to Japanese input with CorvusSKK.
  6. Type a reading (e.g., nihongo).
  7. Trigger conversion / candidate selection (e.g., Space / usual CorvusSKK conversion action).

Expected Behavior

Candidate window / composition UI should be visible near the caret position, allowing normal candidate selection.

Actual Behavior

Candidate window / composition UI is not visible.
However, conversion still happens internally (confirming commits some candidate), so selection becomes “blind”.

Originally created by @hirsaeki on GitHub (Jan 8, 2026). ### Windows Terminal version 1.24.251216004 ### Windows build number 26200.7462 ### Other Software **CorvusSKK:** `3.3.1` ### Steps to reproduce 1. Install Windows Terminal **Preview** `1.24.251216004-preview`. 2. Ensure **CorvusSKK 3.3.1** is installed and set as the current IME. 3. Launch Windows Terminal Preview (non-elevated; not running as Administrator). 4. Open a tab (e.g., PowerShell). 5. Switch to Japanese input with CorvusSKK. 6. Type a reading (e.g., `nihongo`). 7. Trigger conversion / candidate selection (e.g., Space / usual CorvusSKK conversion action). ### Expected Behavior Candidate window / composition UI should be visible near the caret position, allowing normal candidate selection. ### Actual Behavior Candidate window / composition UI is **not visible**. However, conversion still happens internally (confirming commits some candidate), so selection becomes “blind”.
claunia added the Needs-TriageIssue-Bug labels 2026-01-31 08:56:58 +00:00
Author
Owner

@lhecker commented on GitHub (Jan 12, 2026):

This seems awfully similar to #19670. Curiously, Sogou IME doesn't work on 1.23 and works on 1.24, while your IME doesn't work on 1.24 either.

Here are all relevant changes between the last v1.23.* Preview version and the newest v1.24.* Preview version. I checked each one again whether they could've caused this:

git log --oneline v1.23.12102.0..v1.24.3504.0 src/cascadia/WindowsTerminal/WindowEmperor.cpp src/tsf/Implementation.cpp
  • b277e4b51 Fix cursor being hidden when pressing modifier keys (#19473)
    This only ensures we call HideCursor less often.
  • 5c543bb2b Gracefully handle unavailable TSF from SYSTEM account (#19635)
    This only fixes a null-pointer crash.
  • 7e69a2e96 Fix a WPF<>TSF crash by avoiding TF_TMAE_CONSOLE (#19584)
    This is the most likely culprit, due to the introduction of TF_TMAE_UIELEMENTENABLEDONLY and TF_TMAE_NOACTIVATETIP.
  • b38489b67 Allow creating new windows on another virtual desktop (#19458)
    Unrelated to any IME code paths.
  • 671552671 Use the actual process image instead of module filename to dedup session (#19415)
    Unrelated to any IME code paths.
  • 6f5b293a5 Avoid reentrancy issues when dropping AppHost, even harder (#19395)
    Fixes a crash on exit.
  • 3a57ba54a Avoid reentrancy issues when dropping AppHost (#19296)
    Fixes a crash on exit.
  • fc465bdae Fix CoreWindow being destroyed after handoff (#19298)
    Fixes a crash on startup.
  • f2b30b4e1 Improve TSF color filtering logic (re: QQPinyin) (#19117)
    Fixes IME text rendering on our side.
  • 02f173d50 Include the hash of the SID in the Window Class and Mutant (#19109)
    Unrelated to any IME code paths.
  • ac07afebc Fix a crash during commandline handoff (#19096)
    Fixes a crash on startup.
  • a25d968fe Move ConPTY handoff logic into WindowEmperor (#19088)
    Big refactoring and may cause this issue if the WinUI creation is different now.
  • b47fdfc7e Fix support for the Tencent QQPinyin IME (#19046)
    Fixes IME text rendering on our side.
  • b50eaa19e Add branding and unpackaged metadata to a few telemetry events (#18926)
    Unrelated to any IME code paths.
  • 26cd15a14 Eagerly persist on WM_ENDSESSION (#18912)
    Fixes an issue on exit.
  • f769597d8 Persist window layout every few minutes (#18898)
    Unrelated to any IME code paths.
  • 69fc2d94e Clean up persisted windows after the feature is disabled (#18910)
    Fixes an issue on exit.
  • 96d1407c5 Fix bugs introduced in #18623 (#18635)
    Fixes an issue on exit.
  • e1be2f4c7 Fix persistence of the last closed window (#18623)
    Fixes an issue on exit.

In short, I believe it's #19584 due to TF_TMAE_UIELEMENTENABLEDONLY or TF_TMAE_NOACTIVATETIP. I can test that later. If it's indeed the culprit, I'd normally revert it immediately, but...

conhost used to use these flags for a decade and it still does if you enable the "Legacy Console" in its settings. Wouldn't that mean that it's actually a bug in Corvus SKK? If I check the CorvusSKK source code, I can see that it does use GUID_TFCAT_TIPCAP_UIELEMENTENABLED at least:
adc110ad83/imcrvtip/Register.cpp (L18)

@lhecker commented on GitHub (Jan 12, 2026): This seems awfully similar to #19670. Curiously, Sogou IME doesn't work on 1.23 and works on 1.24, while your IME doesn't work on 1.24 either. Here are all relevant changes between the last v1.23.* Preview version and the newest v1.24.* Preview version. I checked each one again whether they could've caused this: ```sh git log --oneline v1.23.12102.0..v1.24.3504.0 src/cascadia/WindowsTerminal/WindowEmperor.cpp src/tsf/Implementation.cpp ``` * b277e4b51 Fix cursor being hidden when pressing modifier keys ([#19473](https://github.com/microsoft/terminal/pull/19473)) ✅ This only ensures we call `HideCursor` less often. * 5c543bb2b Gracefully handle unavailable TSF from SYSTEM account ([#19635](https://github.com/microsoft/terminal/pull/19635)) ✅ This only fixes a null-pointer crash. * 7e69a2e96 Fix a WPF<>TSF crash by avoiding TF_TMAE_CONSOLE ([#19584](https://github.com/microsoft/terminal/pull/19584)) ❌ This is the most likely culprit, due to the introduction of `TF_TMAE_UIELEMENTENABLEDONLY` and `TF_TMAE_NOACTIVATETIP`. * b38489b67 Allow creating new windows on another virtual desktop ([#19458](https://github.com/microsoft/terminal/pull/19458)) ✅ Unrelated to any IME code paths. * 671552671 Use the actual process image instead of module filename to dedup session ([#19415](https://github.com/microsoft/terminal/pull/19415)) ✅ Unrelated to any IME code paths. * 6f5b293a5 Avoid reentrancy issues when dropping AppHost, even harder ([#19395](https://github.com/microsoft/terminal/pull/19395)) ✅ Fixes a crash on exit. * 3a57ba54a Avoid reentrancy issues when dropping AppHost ([#19296](https://github.com/microsoft/terminal/pull/19296)) ✅ Fixes a crash on exit. * fc465bdae Fix CoreWindow being destroyed after handoff ([#19298](https://github.com/microsoft/terminal/pull/19298)) ✅ Fixes a crash on startup. * f2b30b4e1 Improve TSF color filtering logic (re: QQPinyin) ([#19117](https://github.com/microsoft/terminal/pull/19117)) ✅ Fixes IME text rendering on our side. * 02f173d50 Include the hash of the SID in the Window Class and Mutant ([#19109](https://github.com/microsoft/terminal/pull/19109)) ✅ Unrelated to any IME code paths. * ac07afebc Fix a crash during commandline handoff ([#19096](https://github.com/microsoft/terminal/pull/19096)) ✅ Fixes a crash on startup. * a25d968fe Move ConPTY handoff logic into WindowEmperor ([#19088](https://github.com/microsoft/terminal/pull/19088)) ❔ Big refactoring and may cause this issue if the WinUI creation is different now. * b47fdfc7e Fix support for the Tencent QQPinyin IME ([#19046](https://github.com/microsoft/terminal/pull/19046)) ✅ Fixes IME text rendering on our side. * b50eaa19e Add branding and unpackaged metadata to a few telemetry events ([#18926](https://github.com/microsoft/terminal/pull/18926)) ✅ Unrelated to any IME code paths. * 26cd15a14 Eagerly persist on WM_ENDSESSION ([#18912](https://github.com/microsoft/terminal/pull/18912)) ✅ Fixes an issue on exit. * f769597d8 Persist window layout every few minutes ([#18898](https://github.com/microsoft/terminal/pull/18898)) ✅ Unrelated to any IME code paths. * 69fc2d94e Clean up persisted windows after the feature is disabled ([#18910](https://github.com/microsoft/terminal/pull/18910)) ✅ Fixes an issue on exit. * 96d1407c5 Fix bugs introduced in #18623 ([#18635](https://github.com/microsoft/terminal/pull/18635)) ✅ Fixes an issue on exit. * e1be2f4c7 Fix persistence of the last closed window ([#18623](https://github.com/microsoft/terminal/pull/18623)) ✅ Fixes an issue on exit. In short, I believe it's #19584 due to `TF_TMAE_UIELEMENTENABLEDONLY` or `TF_TMAE_NOACTIVATETIP`. I can test that later. If it's indeed the culprit, I'd normally revert it immediately, but... conhost used to use these flags for a decade and it still does if you enable the "Legacy Console" in its settings. Wouldn't that mean that it's actually a bug in Corvus SKK? If I check the CorvusSKK source code, I can see that it does use `GUID_TFCAT_TIPCAP_UIELEMENTENABLED` at least: https://github.com/nathancorvussolis/corvusskk/blob/adc110ad83ef8f2673c775989cbf64004b862b5d/imcrvtip/Register.cpp#L18
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#23946