diff --git a/docs/specs/layout.md b/docs/specs/layout.md index a137d925..79b6cc2e 100644 --- a/docs/specs/layout.md +++ b/docs/specs/layout.md @@ -82,13 +82,14 @@ Elements from left to right: - Alert bell button (reflects session activity status) - TODO pill (if todo state is set; hidden in minimal tier) - Flexible gap +- Mouse-reporting override icon (only when the inside program requests mouse reporting; hidden in minimal tier) - SplitHorizontalIcon `split left/right [|]` (full tier only) - SplitVerticalIcon `split top/bottom [-]` (full tier only) - ArrowsOutIcon / ArrowsInIcon `zoom / unzoom [z]` (full tier only) - ArrowLineDownIcon `minimize [m]` - XIcon `kill [x]` (hover turns error-red) -The alert bell and TODO pill are defined in `docs/specs/alert.md` (visual states, interaction, context menu, and hardening). +The alert bell and TODO pill are defined in `docs/specs/alert.md` (visual states, interaction, context menu, and hardening). The mouse-reporting override icon (Phosphor `CursorClickIcon` / `CursorTextIcon`) is defined in `docs/specs/mouse-and-clipboard.md`. ### Pane body @@ -98,9 +99,11 @@ The pane body paints `--color-terminal-bg` on the React pane wrapper and the `Te The header adapts to available width via ResizeObserver in three tiers: -- **Full** (>280px): all controls visible — alert, TODO, split, zoom, minimize, kill -- **Compact** (160–280px): SplitH/SplitV/Zoom hidden; alert, TODO, minimize, kill visible -- **Minimal** (<160px): SplitH/SplitV/Zoom and TODO pill hidden; alert, minimize, kill visible. Session name truncates with ellipsis as needed. +- **Full** (>280px): all controls visible — alert, TODO, mouse-override icon, split, zoom, minimize, kill +- **Compact** (160–280px): SplitH/SplitV/Zoom hidden; alert, TODO, mouse-override icon, minimize, kill visible +- **Minimal** (<160px): SplitH/SplitV/Zoom, TODO pill, and mouse-override icon hidden; alert, minimize, kill visible. Session name truncates with ellipsis as needed. + +The mouse-override icon only appears when the inside program has requested mouse reporting (per `docs/specs/mouse-and-clipboard.md`); when present, it follows the tier visibility above. ## Baseboard diff --git a/docs/specs/mouse-and-clipboard.md b/docs/specs/mouse-and-clipboard.md index b461f8a8..a1958d4f 100644 --- a/docs/specs/mouse-and-clipboard.md +++ b/docs/specs/mouse-and-clipboard.md @@ -27,7 +27,7 @@ The terminal makes the current regime visible in the pane header, provides a way ## 1. The Mouse Icon (Header Indicator) -**Visibility.** No icon when the inside program has not requested mouse reporting; a **Mouse icon** (Phosphor `CursorClickIcon`) when it has; replaced by a **No-Mouse icon** (Phosphor `SelectionSlashIcon`) in the same header location while the user has activated an override. +**Visibility.** No icon when the inside program has not requested mouse reporting; a **Mouse icon** (Phosphor `CursorClickIcon`) when it has; replaced by a **No-Mouse icon** (Phosphor `CursorTextIcon`) in the same header location while the user has activated an override. **Click.** Clicking the Mouse icon activates a **temporary override** (see §2). Clicking the No-Mouse icon ends the override immediately and restores mouse reporting to the inside program. diff --git a/lib/src/components/wall/TerminalPaneHeader.tsx b/lib/src/components/wall/TerminalPaneHeader.tsx index a67e1473..f7311c59 100644 --- a/lib/src/components/wall/TerminalPaneHeader.tsx +++ b/lib/src/components/wall/TerminalPaneHeader.tsx @@ -8,7 +8,7 @@ import { ArrowsOutIcon, BellIcon, CursorClickIcon, - SelectionSlashIcon, + CursorTextIcon, SplitHorizontalIcon, SplitVerticalIcon, XIcon, @@ -329,7 +329,7 @@ export function TerminalPaneHeader({ api }: IDockviewPanelHeaderProps) { > {inOverride ? ( - + ) : ( )}