fix: fix crash when selecting the last node

This commit is contained in:
Lucas.Xu 2022-08-08 16:17:17 +08:00
parent dc018bc7e4
commit 2f84d7e54e

View File

@ -313,13 +313,9 @@ class _FlowySelectionState extends State<FlowySelection>
panStartOffsetWithScrollDyGap.translate(0, panStartScrollDy! - dy);
}
final sortedNodes =
editorState.document.root.children.toList(growable: false);
final first = _lowerBound(
sortedNodes, panStartOffsetWithScrollDyGap, 0, sortedNodes.length)
.selectable;
final last = _upperBound(sortedNodes, panEndOffset!, 0, sortedNodes.length)
.selectable;
final first =
_lowerBoundInDocument(panStartOffsetWithScrollDyGap).selectable;
final last = _upperBoundInDocument(panEndOffset!).selectable;
// compute the selection in range.
if (first != null && last != null) {
@ -518,13 +514,13 @@ class _FlowySelectionState extends State<FlowySelection>
Node _lowerBoundInDocument(Offset offset) {
final sortedNodes =
editorState.document.root.children.toList(growable: false);
return _lowerBound(sortedNodes, offset, 0, sortedNodes.length);
return _lowerBound(sortedNodes, offset, 0, sortedNodes.length - 1);
}
Node _upperBoundInDocument(Offset offset) {
final sortedNodes =
editorState.document.root.children.toList(growable: false);
return _upperBound(sortedNodes, offset, 0, sortedNodes.length);
return _upperBound(sortedNodes, offset, 0, sortedNodes.length - 1);
}
/// TODO: Supports multi-level nesting,