3.9 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, references, documentation, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | references | documentation | priority | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-260 | Fix macOS overlay subtitle sidebar passthrough without requiring a subtitle hover cycle | Done |
|
2026-03-31 00:58 | 2026-03-31 01:01 |
|
|
|
high |
Description
On macOS, opening the overlay-layout subtitle sidebar should allow click-through outside the sidebar immediately. Users should not need to first hover subtitle content before passthrough/click-through starts working, including when no subtitle line is currently visible.
Acceptance Criteria
- #1 With the overlay-layout subtitle sidebar open on macOS, areas outside the sidebar pass clicks through immediately after open without requiring a prior subtitle hover.
- #2 When no subtitle line is currently visible, opening the subtitle sidebar still leaves non-sidebar overlay regions click-through on macOS.
- #3 Regression coverage exercises the first-open/idle passthrough path so overlay interactivity does not depend on a later hover cycle.
Implementation Plan
- Add/adjust focused overlay visibility regressions for the tracked macOS visible overlay so the default idle state stays click-through instead of forcing mouse interaction.
- Update main-process visible overlay visibility sync to keep the tracked macOS overlay passive by default and let renderer hover/sidebar state opt into interaction.
- Run focused verification for overlay visibility and any dependent runtime tests, then update task notes/criteria/final summary with the confirmed outcome.
Implementation Notes
Investigation points to a main-process override on macOS: renderer sidebar open path already requests mouse passthrough outside the panel, but visible-overlay visibility sync still hard-sets the tracked overlay window interactive on macOS (mouse-ignore:false). Window-tracker focus/visibility resync can therefore undo renderer passthrough until a later hover cycle re-applies it.
Added a failing regression in src/core/services/overlay-visibility.test.ts showing the tracked macOS visible overlay was still forced interactive by main-process visibility sync (mouse-ignore:false) instead of staying forwarded click-through.
Updated src/core/services/overlay-visibility.ts so tracked macOS visible overlays now default to setIgnoreMouseEvents(true, { forward: true }), matching the renderer-side passthrough model and preventing window-tracker/focus resync from undoing idle sidebar clickthrough.
Final Summary
Fixed the macOS subtitle-sidebar passthrough regression by changing tracked visible-overlay startup/visibility sync to stay click-through by default in the main process. Previously updateVisibleOverlayVisibility forced the macOS overlay window interactive, which could override renderer sidebar passthrough until a later hover cycle repaired it. Added a regression in src/core/services/overlay-visibility.test.ts and verified with bun test src/core/services/overlay-visibility.test.ts, bun test src/renderer/modals/subtitle-sidebar.test.ts src/renderer/handlers/mouse.test.ts, and bun run typecheck.