From 65858b7d9cec780bbf944d860cdce8d5f5b1aa3b Mon Sep 17 00:00:00 2001 From: areznik10 Date: Thu, 18 Apr 2024 14:36:19 +0100 Subject: [PATCH 1/2] Add setTimeout for mousemove handler --- .../src/LexicalTableSelectionHelpers.ts | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/lexical-table/src/LexicalTableSelectionHelpers.ts b/packages/lexical-table/src/LexicalTableSelectionHelpers.ts index cf6db409f0b..f663e3bc08e 100644 --- a/packages/lexical-table/src/LexicalTableSelectionHelpers.ts +++ b/packages/lexical-table/src/LexicalTableSelectionHelpers.ts @@ -102,15 +102,17 @@ export function applyTableHandlers( }; const onMouseMove = (moveEvent: MouseEvent) => { - const focusCell = getDOMCellFromTarget(moveEvent.target as Node); - if ( - focusCell !== null && - (tableObserver.anchorX !== focusCell.x || - tableObserver.anchorY !== focusCell.y) - ) { - moveEvent.preventDefault(); - tableObserver.setFocusCellForSelection(focusCell); - } + setTimeout(() => { + const focusCell = getDOMCellFromTarget(moveEvent.target as Node); + if ( + focusCell !== null && + (tableObserver.anchorX !== focusCell.x || + tableObserver.anchorY !== focusCell.y) + ) { + moveEvent.preventDefault(); + tableObserver.setFocusCellForSelection(focusCell); + } + }, 0); }; return {onMouseMove: onMouseMove, onMouseUp: onMouseUp}; }; From c626b1b8cbeb7daa1a42d474881c4fc790bdd6c1 Mon Sep 17 00:00:00 2001 From: areznik10 Date: Fri, 19 Apr 2024 11:33:32 +0100 Subject: [PATCH 2/2] Add comment explaining setTimeout --- packages/lexical-table/src/LexicalTableSelectionHelpers.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/lexical-table/src/LexicalTableSelectionHelpers.ts b/packages/lexical-table/src/LexicalTableSelectionHelpers.ts index f663e3bc08e..ed443fc3f17 100644 --- a/packages/lexical-table/src/LexicalTableSelectionHelpers.ts +++ b/packages/lexical-table/src/LexicalTableSelectionHelpers.ts @@ -102,6 +102,7 @@ export function applyTableHandlers( }; const onMouseMove = (moveEvent: MouseEvent) => { + // delaying mousemove handler to allow selectionchange handler from LexicalEvents.ts to be executed first setTimeout(() => { const focusCell = getDOMCellFromTarget(moveEvent.target as Node); if (