From 98cbb237b54460542ada689a16d3106ab36223cd Mon Sep 17 00:00:00 2001 From: Caleb John Date: Thu, 7 Jan 2021 10:01:44 -0700 Subject: [PATCH] Desktop: Fixes: #4317: Spell checker inserts correction at wrong location (#4318) --- .../NoteEditor/NoteBody/CodeMirror/utils/useCursorUtils.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useCursorUtils.ts b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useCursorUtils.ts index 5f09e97c12..c8936c1380 100644 --- a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useCursorUtils.ts +++ b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useCursorUtils.ts @@ -1,4 +1,5 @@ import markdownUtils from '@joplin/lib/markdownUtils'; +import Setting from '@joplin/lib/models/Setting'; // Helper functions that use the cursor export default function useCursorUtils(CodeMirror: any) { @@ -120,8 +121,12 @@ export default function useCursorUtils(CodeMirror: any) { return -1; }; + // CodeMirror coordsChar doesn't properly scale values when zoomed + // we need to manually apply the zoom + const zoomFactor = Setting.value('windowContentZoomFactor') / 100; + const selectionText = params.selectionText; - const coords = this.coordsChar({ left: params.x, top: params.y }); + const coords = this.coordsChar({ left: params.x / zoomFactor, top: params.y / zoomFactor }); const { anchor, head } = this.findWordAt(coords); const selectedWord = this.getRange(anchor, head);