diff --git a/package-lock.json b/package-lock.json index 276822b6..ff33d6f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "yjs", - "version": "13.0.0-63", + "version": "13.0.0-66", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ebc7221f..9447e668 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yjs", - "version": "13.0.0-63", + "version": "13.0.0-66", "description": "A framework for real-time p2p shared editing on any data", "main": "./y.node.js", "browser": "./y.js", diff --git a/src/Bindings/DomBinding/DomBinding.js b/src/Bindings/DomBinding/DomBinding.js index 87833c13..beabb910 100644 --- a/src/Bindings/DomBinding/DomBinding.js +++ b/src/Bindings/DomBinding/DomBinding.js @@ -140,7 +140,6 @@ export default class DomBinding extends Binding { restoreSelection (selection) { if (selection !== null) { const { to, from } = selection - let shouldUpdate = false /** * There is little information on the difference between anchor/focus and base/extent. * MDN doesn't even mention base/extent anymore.. though you still have to call @@ -159,7 +158,6 @@ export default class DomBinding extends Binding { if (node !== baseNode || offset !== baseOffset) { baseNode = node baseOffset = offset - shouldUpdate = true } } } @@ -171,18 +169,15 @@ export default class DomBinding extends Binding { if (node !== extentNode || offset !== extentOffset) { extentNode = node extentOffset = offset - shouldUpdate = true } } } - if (shouldUpdate) { - browserSelection.setBaseAndExtent( - baseNode, - baseOffset, - extentNode, - extentOffset - ) - } + browserSelection.setBaseAndExtent( + baseNode, + baseOffset, + extentNode, + extentOffset + ) } } diff --git a/src/Bindings/DomBinding/selection.js b/src/Bindings/DomBinding/selection.js index 25798edb..ab6760f5 100644 --- a/src/Bindings/DomBinding/selection.js +++ b/src/Bindings/DomBinding/selection.js @@ -19,17 +19,17 @@ function _getCurrentRelativeSelection (domBinding) { export const getCurrentRelativeSelection = typeof getSelection !== 'undefined' ? _getCurrentRelativeSelection : () => null -export function beforeTransactionSelectionFixer (domBinding, remote) { - if (remote) { - relativeSelection = getCurrentRelativeSelection(domBinding) - } +export function beforeTransactionSelectionFixer (domBinding) { + relativeSelection = getCurrentRelativeSelection(domBinding) } /** + * Reset the browser range after every transaction. + * This prevents any collapsing issues with the local selection. * @private */ -export function afterTransactionSelectionFixer (domBinding, remote) { - if (relativeSelection !== null && remote) { +export function afterTransactionSelectionFixer (domBinding) { + if (relativeSelection !== null) { domBinding.restoreSelection(relativeSelection) } }