syncSelectionManager function
Synchronizes SelectionManager with the current cursor state.
Implementation
void syncSelectionManager(FluentDocument document) {
final cursor = document.cursor;
if (cursor.isCollapsed) {
document.selectionManager.collapse();
return;
}
final anchorNodeId = document.findLogicalContainerId(cursor.anchorId);
final focusNodeId = document.findLogicalContainerId(cursor.focusId);
if (anchorNodeId == null || focusNodeId == null) {
document.selectionManager.clear();
return;
}
document.selectionManager.startSelection(
anchorNodeId,
cursor.anchorId,
cursor.anchorOffset,
);
document.selectionManager.updateFocus(
focusNodeId,
cursor.focusId,
cursor.focusOffset,
);
}