Skip to content

GTK: typing in the right pane of a split terminal causes text in that pane to disappear #471

Description

@JDonaghy

Repro

  1. `:term` to open the terminal panel.
  2. Split the terminal (whatever the split binding is — `Ctrl-\` or via right-click split, etc.).
  3. Click into the right pane to focus it.
  4. Type any character.

Expected

The character appears in the right pane's shell prompt and the rest of the pane's existing content stays visible.

Actual

Text in the right pane disappears. Left pane unaffected.

Reproduces on

Develop `3643a00` and earlier — pre-existing, not caused by #462's GTK paint migration (verified by reverting the migration and seeing the bug persist).

Likely location

Probably one of:

  • `render::build_terminal_draw_data` — maybe `td.right` gets repointed to an empty Terminal primitive when the right pane processes input, while `td.left` keeps its content.
  • `Engine::handle_terminal_input` (or wherever PTY bytes get routed) — maybe input intended for the right pane is causing the right pane's buffer to be cleared / re-pointed to a different terminal instance.
  • The split-terminal scrollback state (`TerminalState` or equivalent) — maybe input bytes are landing on the wrong pane's PTY and the right pane's display gets out of sync.

Likely the input routing for split terminals selects the wrong target (writes to left's PTY while the display reads right's PTY).

Surfaced by

Smoke test of #462 (chunk C — complex surfaces migration). The migration is unrelated; the bug appears on the unmigrated code path too.

Verification steps

`git checkout develop && cargo run --release` → open `:term`, split, type in right pane → confirm text disappears on develop.

Activity

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 workinguiUI/rendering

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions