Skip to content

[Bug] Comment textarea flickers while typing Chinese (CJK IME) in review annotations #1949

Open

Description

@PassionZale

What happened?

When typing Chinese (or other CJK input) into the annotation/comment textarea in the review UI, the textarea visibly flickers/jumps during IME composition (i.e. while the candidate window is updating). English input is smooth — the flickering only happens with IME composition.

The likely trigger: IME composition fires an input event on every candidate update, and per #659 the review UI currently re-renders the entire AllFilesDiffView tree (including every unmemoized LazyFileDiff / Pierre <FileDiff>) plus forced reflows from the capture-phase scroll listeners in AnnotationToolbar / CommentPopover. IME updates this at a much higher frequency than keystrokes, which turns the typing-lag problem described in #659 into visible flickering of the textarea.

Steps to reproduce

  1. Open a code review (plannotator-review) with a moderately large diff (enough files to be noticeable).
  2. Select some text / open the annotation composer.
  3. Switch to a Chinese IME (e.g. 搜狗输入法 / Sogou Pinyin).
  4. Type several characters without committing (e.g. type zhongwen and let candidates update).
  5. Observe the textarea flickering/jumping while the IME candidate window updates.

Expected behavior

The textarea and the page around it stay visually stable during IME composition, same as typing English.

Actual behavior

The textarea flickers on each IME composition update. This does not happen when typing English characters.

Environment

  • OS: macOS Sonoma 14.3.1 (Apple M3 Pro)
  • Browser: Chrome 155
  • IME: 搜狗输入法 (Sogou Pinyin)
  • Plannotator version: 0.28.20
  • Agent: Claude Code 2.1.295

Where did it happen: Code review (/plannotator-review) — annotation/comment composer

Additional context

A minimal mitigation that usually helps: keep textarea state local to the composer component (don't bubble per-change state to the diff view parent), and guard composition with isComposing / compositionstart/compositionend if any side effects fire on input.

Activity

  1. added
    bugSomething isn't working
    triageIssue created from backlog triage
    on Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageIssue created from backlog triage

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions