TextInput renders CJK wide characters as blank or garbled #41

Closed
opened 2026-07-19 22:23:24 -07:00 by YongHee-Kim · 1 comment
YongHee-Kim commented 2026-07-19 22:23:24 -07:00 (Migrated from github.com)

A focused TextInput does not display Korean characters correctly. The text is stored, but the cursor overwrites part of each two-column glyph.

https://github.com/user-attachments/assets/1b306f3d-01b1-44e7-986e-89158353c3b8

You can reproduce this with the script below.
Copy paste "안녕하세요, 한글 안보여요 12345" and only special characters are visible

using Tachikoma

mutable struct Repro <: Tachikoma.Model
    input::Tachikoma.TextInput
    quit::Bool
end

Tachikoma.should_quit(model::Repro) = model.quit

function Tachikoma.update!(model::Repro, event::Tachikoma.KeyEvent)
    event.key == :escape ? model.quit = true :
        Tachikoma.handle_key!(model.input, event)
end

Tachikoma.view(model::Repro, frame::Tachikoma.Frame) =
    Tachikoma.render(model.input, frame.area, frame.buffer)

text = string("예제")
Tachikoma.app(Repro(Tachikoma.TextInput(; text, focused=true), false))
A focused TextInput does not display Korean characters correctly. The text is stored, but the cursor overwrites part of each two-column glyph. https://github.com/user-attachments/assets/1b306f3d-01b1-44e7-986e-89158353c3b8 You can reproduce this with the script below. Copy paste "안녕하세요, 한글 안보여요 12345" and only special characters are visible ```Julia using Tachikoma mutable struct Repro <: Tachikoma.Model input::Tachikoma.TextInput quit::Bool end Tachikoma.should_quit(model::Repro) = model.quit function Tachikoma.update!(model::Repro, event::Tachikoma.KeyEvent) event.key == :escape ? model.quit = true : Tachikoma.handle_key!(model.input, event) end Tachikoma.view(model::Repro, frame::Tachikoma.Frame) = Tachikoma.render(model.input, frame.area, frame.buffer) text = string("예제") Tachikoma.app(Repro(Tachikoma.TextInput(; text, focused=true), false)) ```
kahliburke commented 2026-07-20 04:29:24 -07:00 (Migrated from github.com)

Fixed in v2.3.8 (commit 2ddef0f). TextInput now renders wide/CJK glyphs in display-column space with proper lead + pad cells, so text like "안녕하세요, 한글 안보여요 12345" displays correctly. Thanks for the clear repro, @YongHee-Kim!

Fixed in v2.3.8 (commit 2ddef0f). TextInput now renders wide/CJK glyphs in display-column space with proper lead + pad cells, so text like "안녕하세요, 한글 안보여요 12345" displays correctly. Thanks for the clear repro, @YongHee-Kim!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kahliburke/Tachikoma.jl#41
No description provided.