fix: restore tab drag-and-drop pane splitting#76
Conversation
Three issues prevented tab DnD from working: 1. Tauri's dragDropEnabled defaults to true, which intercepts all drag events at the native WebView2 level on Windows, preventing HTML5 DnD events from reaching the DOM. Set to false in tauri.conf.json. 2. PR #75 split PaneDndProvider into two separate instances (one for PaneRenderer, one for FileExplorer), so isDragging state set in one provider was invisible to children of the other. Reunified into a single provider wrapping both. 3. The tab bar container div lacked an onDragOver handler, causing the browser to show a no-drop cursor when dragging over gaps between tabs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughIntroduces drag-and-drop infrastructure for the workspace. Disables OS-level drag-drop in Tauri config, adds drag-over handler to tab bar, wraps layout in PaneDndProvider, and enhances the empty state with improved UI components. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
dragDropEnabledso HTML5 DnD events reach the WebView2 DOM on WindowsPaneDndProviderinto a single instance wrapping bothPaneRendererandFileExplorer, restoring sharedisDraggingstateonDragOverhandler to tab bar container to prevent no-drop cursor in gaps between tabsRoot Cause
Three separate issues combined to break tab drag-and-drop:
dragDropEnableddefaults totrue, which blocks all HTML5 drag events at the native levelPaneDndProviderinstances meantisDraggingset in one was invisible to the otheronDragOver, causing no-drop cursor between tabsTest plan
🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
New Features
Chores