fix(desktop): keep sidebar artwork out of the drag region - #10680
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a one-file, two-line desktop CSS fix that confines the sidebar artwork's native drag-region behavior without changing application logic or contracts. Its runtime effect is limited to restoring pointer interaction in the affected sidebar area. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe ChangesSidebar backdrop interaction
Priority: ➖ Normal — Impact reflects medium issue severity. Estimated code review effort: 1 (Trivial) | ~2 minutes Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to Sidebar artwork no longer captures native drag behavior below the titlebar, allowing the underlying New thread and Search controls to receive pointer events while retaining header dragging. The focused CSS change is ready to merge. Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
Full details: Linked Issues checkExplanation The change directly targets issue Resolution Validate the fix on Linux/Wayland with normal clicks, hover, and Shift-click. Confirm that the artwork no longer suppresses pointer events while header dragging remains functional. If ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
What Changed
Reset
-webkit-app-regiontoinitialon the shared sidebar artwork. This prevents the artwork from inheriting the header's native drag region.Why
The 80px artwork extends below the 52px header and covers Search and New thread. Electron inherits
app-region: dragthrough the artwork, so native pointer events never reach those controls, while the keyboard shortcut still works.pointer-events: nonedoes not exclude a native drag region.Use
initialbecause Electron maps an explicitnonetono-drag, which would cancel dragging across the overlapping header. The reset keeps the header atdragand the artwork at the initialnonevalue. Development and nightly artwork share this fix.Fixes #10661.
Verified with Electron 44.1.0 on macOS using isolated state copied from an existing profile: native pen clicks open the project picker, Search accepts typing, and repeated clicks work after dismissal. Restoring the original inherited style reproduces the blocked pen with no pointer events; Cmd+N still opens the picker. Linux/Hyprland and Shift-click were not exercised. Web build, scoped formatting, and
git diff --checkpass. No JavaScript, provider, or contract changes.UI Changes
Cropped to omit project paths and thread content. Before restores the original inherited style; after uses the compiled fix.
Native click interaction recording
Checklist
Model: GPT-6. Harness: Codex.
Note
Reset
-webkit-app-regiononsidebar-stage-backdroputilityThe sidebar stage artwork was inheriting the titlebar's native drag region, making it uninteractable. Adds a WebKit app-region reset to the
sidebar-stage-backdropCSS utility in index.css so those elements use the initial app-region value instead.📊 Macroscope summarized 994a6cd. 1 file reviewed, 1 issue evaluated, 1 issue filtered, 0 comments posted
🗂️ Filtered Issues
apps/web/src/index.css — 0 comments posted, 1 evaluated, 1 filtered
-webkit-app-region: initialonly resets the artwork to the property's initial value; it does not create theno-dragexclusion Electron requires. The backdrop is a child of the.drag-regionheader and overlaps controls below the 52px header, so the ancestor's rectangular draggable region still covers that area and native pointer events remain suppressed. Electron documentsapp-region: no-dragas the operation that excludes an overlapping rectangle and reenables pointer events. [ Out of scope (triage) ]Summary by CodeRabbit