Skip to content

v1.1: mouse support#10

Merged
sebasv merged 1 commit intofeat/v1.0-polishfrom
feat/v1.1-mouse
Apr 22, 2026
Merged

v1.1: mouse support#10
sebasv merged 1 commit intofeat/v1.0-polishfrom
feat/v1.1-mouse

Conversation

@sebasv
Copy link
Copy Markdown
Owner

@sebasv sebasv commented Apr 21, 2026

Summary

Click-to-focus / click-to-select sidebar / wheel scrollback. Stacked on #9.

Test plan

  • 87 tests pass
  • Release build clean

🤖 Generated with Claude Code

@sebasv sebasv mentioned this pull request Apr 21, 2026
2 tasks
@sebasv sebasv force-pushed the feat/v1.0-polish branch 2 times, most recently from 9c1c78e to ce2d5c0 Compare April 21, 2026 20:35
@sebasv sebasv force-pushed the feat/v1.0-polish branch from ce2d5c0 to cebd159 Compare April 21, 2026 20:41
@sebasv sebasv force-pushed the feat/v1.1-mouse branch 3 times, most recently from 31e14d0 to 20a4e84 Compare April 21, 2026 21:55
…llback

- crossterm mouse capture enabled/disabled alongside the alternate screen.
- `Event::Mouse(MouseEvent)` joins Input on the async channel.
- `LayoutCache` records sidebar + main-inner rects after every render so
  the mouse dispatcher knows what was clicked.
- Left click on the sidebar: moves cursor to the row (repo or worktree),
  activates worktree clicks. Left click on the main pane: focus → Main.
- Wheel up: enters scrollback and scrolls back 3 lines; wheel down:
  scrolls forward 3 (and exits scrollback when at the bottom).
- Modals still swallow mouse events — keyboard-only input there.

87 tests pass (mouse handlers are pure and deterministic; unit-testing
them is straightforward later). Release build clean.

Version 1.1.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sebasv sebasv merged commit da32df8 into feat/v1.0-polish Apr 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant