Skip to content

bug(terminal): wheel input escapes inline terminals at scrollback boundaries #791

Description

@Juliusolsson05

Expected behavior

Wheel input over an interactive terminal stays owned by that terminal at the top/bottom of its scrollback. Provider mouse reporting and alternate-screen arrow-key scrolling must keep working.

Actual behavior and reproduction

A real Electron 43 / xterm 6.0.0 probe mounts the production WebGL loader in a terminal nested under an overflow-auto panel, matching DebugPanel and AgentInlineTerminal. Normal wheel input moves terminal scrollback correctly and appending output preserves the scrolled position. At the bottom boundary, a further downward wheel gesture moves the parent panel by 120 CSS pixels while the terminal viewport remains at its bottom. The xterm custom scrollable stops consuming wheel input when it cannot move farther.

Impact

Scrolling in an inline terminal can unexpectedly move its surrounding panel instead. This is distinct from the GPU atlas corruption tracked in #789; it does not establish the cause of every reported scrolling symptom.

Acceptance criteria

Contain otherwise-unconsumed vertical wheel events within terminal content, retain xterm/provider ownership for scrollback and alternate/mouse modes, preserve modifier/browser gestures, dispose listeners with the terminal, and verify with behavioral tests plus a real Chromium wheel probe. Do not add per-scroll PTY writes, repaint loops, or React state updates.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions