From 4b9e60caf936c3c13eede93f3018d2dd376a0715 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Fri, 24 Feb 2023 12:04:44 +0200 Subject: [PATCH] fake cursor plugin fixes --- wax-prosemirror-core/src/WaxView.js | 11 ++++++++ .../TablesService/plugins/FakeCursorPlugin.js | 26 +++++++------------ 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js index 40ad70192..f5998e3ec 100644 --- a/wax-prosemirror-core/src/WaxView.js +++ b/wax-prosemirror-core/src/WaxView.js @@ -88,8 +88,19 @@ const WaxView = forwardRef((props, ref) => { blur: (editorView, event) => { if (view && event.relatedTarget === null) { view.focus(); + } else { + const fakeCursor = document.getElementsByTagName( + 'fakecursor', + ); + if (fakeCursor && fakeCursor[0]) + fakeCursor[0].style.display = 'inline'; } }, + focus: (editorView, event) => { + const fakeCursor = document.getElementsByTagName('fakecursor'); + if (fakeCursor && fakeCursor[0]) + fakeCursor[0].style.display = 'none'; + }, }, }, ); diff --git a/wax-prosemirror-services/src/TablesService/plugins/FakeCursorPlugin.js b/wax-prosemirror-services/src/TablesService/plugins/FakeCursorPlugin.js index b2fd2aeb0..e6770b617 100644 --- a/wax-prosemirror-services/src/TablesService/plugins/FakeCursorPlugin.js +++ b/wax-prosemirror-services/src/TablesService/plugins/FakeCursorPlugin.js @@ -11,13 +11,14 @@ export default props => { init: (_, state) => {}, apply(tr, prev, _, newState) { let createDecoration; - const widget = document.createElement('fakecursor'); - - createDecoration = DecorationSet.create(newState.doc, [ - Decoration.widget(newState.selection.from, widget, { - key: 'fakecursor', - }), - ]); + if (newState.selection.from === newState.selection.to) { + const widget = document.createElement('fakecursor'); + createDecoration = DecorationSet.create(newState.doc, [ + Decoration.widget(newState.selection.from, widget, { + key: 'fakecursor', + }), + ]); + } return { createDecoration, }; @@ -30,15 +31,8 @@ export default props => { return fakeCursorPluginState.createDecoration; }, handleDOMEvents: { - focus: (view, _event) => { - const fakeCursor = document.getElementsByTagName('fakecursor'); - if (fakeCursor && fakeCursor[0]) fakeCursor[0].style.display = 'none'; - }, - blur: (view, _event) => { - const fakeCursor = document.getElementsByTagName('fakecursor'); - if (fakeCursor && fakeCursor[0]) - fakeCursor[0].style.display = 'inline'; - }, + focus: (view, _event) => {}, + blur: (view, _event) => {}, }, }, }); -- GitLab