diff --git a/frontend/appflowy_flutter/lib/workspace/application/panes/panes_service.dart b/frontend/appflowy_flutter/lib/workspace/application/panes/panes_service.dart index 07d39153b8f5..041cb3a4c41e 100644 --- a/frontend/appflowy_flutter/lib/workspace/application/panes/panes_service.dart +++ b/frontend/appflowy_flutter/lib/workspace/application/panes/panes_service.dart @@ -170,7 +170,7 @@ class PanesService { return node.children.first.copyWith( paneId: nanoid(), parent: node.parent, - sizeController: PaneSizeController.intial(), + sizeController: PaneSizeController(flex: node.sizeController.flex), tabs: Tabs( currentIndex: node.children.first.tabs.currentIndex, pageManagers: node.children.first.tabs.pageManagers, diff --git a/frontend/appflowy_flutter/lib/workspace/application/tabs/tabs.dart b/frontend/appflowy_flutter/lib/workspace/application/tabs/tabs.dart index 7eea10080f40..45312a9070f5 100644 --- a/frontend/appflowy_flutter/lib/workspace/application/tabs/tabs.dart +++ b/frontend/appflowy_flutter/lib/workspace/application/tabs/tabs.dart @@ -91,16 +91,6 @@ class Tabs extends ChangeNotifier { } } - void transferTab({required PageManager pm}) { - final selectExistingPlugin = _selectPluginIfOpen(pm.plugin.id); - - if (!selectExistingPlugin) { - _pageManagers.add(PageManager()..setPlugin(pm.plugin)); - } - currentIndex = _pageManagers.length - 1; - notifyListeners(); - } - void move({ required PageManager from, required PageManager to, @@ -136,6 +126,7 @@ class Tabs extends ChangeNotifier { } } } + setLatestOpenView(); notifyListeners(); } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/panes/draggable_pane_item.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/panes/draggable_pane_item.dart index 3f0a8382e1d9..c8de34007645 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/panes/draggable_pane_item.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/panes/draggable_pane_item.dart @@ -12,7 +12,7 @@ import 'package:vector_math/vector_math.dart' as math; import 'dart:math'; import 'package:flutter/material.dart'; -//TODO(squidrye):refactor cross draggables and add edge cases +//TODO(squidrye):refactor cross draggable enum FlowyDraggableHoverPosition { none, top, left, right, bottom, tab } class DraggablePaneItem extends StatefulWidget { @@ -51,12 +51,7 @@ class _DraggablePaneItemState extends State { }, child: DraggableItem( data: widget.pane, - onWillAccept: (data) => - (data?.crossDraggableType == CrossDraggableType.pane && - (data?.draggable as PaneNode).paneId == - (widget.pane.draggable as PaneNode).paneId) - ? false - : true, + onWillAccept: (data) => _shouldAccept(data!, position), onMove: (data) { final renderBox = widget.paneContext.findRenderObject() as RenderBox; final offset = renderBox.globalToLocal(data.offset); @@ -227,7 +222,7 @@ class _DraggablePaneItemState extends State { fromTab.tabs.closeView(fromTab.pageManager.plugin.id); (to.draggable as PaneNode) .tabs - .transferTab(pm: fromTab.pageManager); + .openView(fromTab.pageManager.plugin); return; } default: