[PR #6223] Fix line drawing during IME operations. #26610

Closed
opened 2026-01-31 09:17:06 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/6223

State: closed
Merged: Yes


Summary of the Pull Request

Restores proper line drawing during IME operations in conhost

PR Checklist

Detailed Description of the Pull Request / Additional comments

  • Changed ConsoleImeInfo::s_ConvertToCells to be less confusing. It's doing about the same thing, but it's way easier to read now and the compiler/linker/optimizer should just be the same.
  • Edited Renderer::_PaintBufferOutputHelper to check each attribute for line drawing characters as the right half of a two-col character might have different line drawing characters than the left-half.

Validation Steps Performed

  • Manual operation of IME in conhost with Japanese IME.
  • Manual operation of IME in conhost with Chinese IME.
  • Manual operation of IME in conhost with Chinese (Traditional) IME.
  • Manual operation of IME in conhost with and Korean IME. - @leonMSFT says Korean doesn't work this way. But Korean is broken worse in that it's not showing suggestions at all. Filing new bug. #6227
  • Validated against API-filling calls through SetConsoleTextAttribute per @j4james's sample code
**Original Pull Request:** https://github.com/microsoft/terminal/pull/6223 **State:** closed **Merged:** Yes --- ## Summary of the Pull Request Restores proper line drawing during IME operations in `conhost` ## PR Checklist * [x] Closes #803 * [x] I work here. * [x] Tested manually. * [x] Check the performance of this and see if it's worse-enough to merit a more confusing algorithm. It was worse for the majority case so I scoped it. * [x] No doc, it should have worked this way. * [x] Am core contributor. ## Detailed Description of the Pull Request / Additional comments - Changed `ConsoleImeInfo::s_ConvertToCells` to be less confusing. It's doing about the same thing, but it's way easier to read now and the compiler/linker/optimizer should just be the same. - Edited `Renderer::_PaintBufferOutputHelper` to check each attribute for line drawing characters as the right half of a two-col character might have different line drawing characters than the left-half. ## Validation Steps Performed - [x] Manual operation of IME in conhost with Japanese IME. - [x] Manual operation of IME in conhost with Chinese IME. - [x] Manual operation of IME in conhost with Chinese (Traditional) IME. - [x] Manual operation of IME in conhost with and Korean IME. - @leonMSFT says Korean doesn't work this way. But Korean is broken worse in that it's not showing suggestions at all. Filing new bug. #6227 - [x] Validated against API-filling calls through `SetConsoleTextAttribute` per @j4james's sample code
claunia added the pull-request label 2026-01-31 09:17:06 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#26610