From 40223746207dc154cc6099c4059a8bb079e45cce Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Mon, 16 Jul 2018 18:15:24 +0200 Subject: [PATCH 1/5] dombinding: always set browser range after change --- src/Bindings/DomBinding/DomBinding.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) 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 + ) } } From a7b124ca6e797cb93e2fa1a4933c0e1d0344ec94 Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Mon, 16 Jul 2018 18:19:36 +0200 Subject: [PATCH 2/5] 13.0.0-64 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 276822b6..f26e70df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "yjs", - "version": "13.0.0-63", + "version": "13.0.0-64", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ebc7221f..2797bb7a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yjs", - "version": "13.0.0-63", + "version": "13.0.0-64", "description": "A framework for real-time p2p shared editing on any data", "main": "./y.node.js", "browser": "./y.js", From 548125a9442f94dc80805a8e2dc423d9cf7c3dbf Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Mon, 16 Jul 2018 18:38:09 +0200 Subject: [PATCH 3/5] 13.0.0-65 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f26e70df..1fde0680 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "yjs", - "version": "13.0.0-64", + "version": "13.0.0-65", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2797bb7a..6f1349be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yjs", - "version": "13.0.0-64", + "version": "13.0.0-65", "description": "A framework for real-time p2p shared editing on any data", "main": "./y.node.js", "browser": "./y.js", From c0972f8158c0b427b4795c090ec305311fd2d235 Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Tue, 17 Jul 2018 18:49:28 +0200 Subject: [PATCH 4/5] reset selection also for local transactions --- src/Bindings/DomBinding/selection.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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) } } From 9d5bf50676106264381a2f21bd729cc2e5f92450 Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Tue, 17 Jul 2018 18:50:03 +0200 Subject: [PATCH 5/5] 13.0.0-66 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fde0680..ff33d6f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "yjs", - "version": "13.0.0-65", + "version": "13.0.0-66", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6f1349be..9447e668 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yjs", - "version": "13.0.0-65", + "version": "13.0.0-66", "description": "A framework for real-time p2p shared editing on any data", "main": "./y.node.js", "browser": "./y.js",