mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-17 13:13:35 +08:00
Electron handles custom draggable chrome through CSS app-region rules, not the old runtime startDragging path. Mark the tab strip and empty scroll gutter as native drag regions while keeping tab items and controls explicitly no-drag so tab reordering and close/tool buttons keep receiving pointer events. Constraint: Electron drag regions swallow pointer events unless interactive children are marked no-drag Rejected: Keep calling startDragging from the empty gutter | Electron desktopHost does not expose that as the active migration path Confidence: high Scope-risk: narrow Directive: Do not mark tab items themselves as drag regions without revalidating tab reorder behavior Tested: cd desktop && bun run test src/components/layout/TabBar.test.tsx --run Tested: cd desktop && bun run lint Tested: bun run check:desktop