Skip to content

Auto-scroll when a drag-selection reaches the top/bottom edge #157

Description

@bastien-gallay

What

While drag-selecting, moving the pointer to the top or bottom edge of the
terminal should scroll the viewport and keep extending the selection —
standard select-past-the-edge behaviour.

Current state

Dragging past the canvas edge simply stops updating the selection head:
cell_at() uses cursor.position_in(bounds) which returns None off-bounds
(crates/app/src/shell/terminal.rs:212-217, 360), so head freezes at the
last in-bounds cell. There is no edge detection and no autoscroll tick.

Fix direction

  • Detect the pointer at/beyond the top/bottom edge during an active selection.
  • Drive a scroll tick (and extend head) while held there.
  • Shares the absolute-line anchoring work with the "selection follows
    scroll" issue — both need selection off viewport coordinates.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal — laterenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions