From 411d10be100207578916501a866441f42258a4b5 Mon Sep 17 00:00:00 2001 From: Marijn Haverbeke Date: Fri, 31 May 2024 11:30:21 +0200 Subject: [PATCH] Be more conservative firing view updates after no-op flush --- src/domobserver.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/domobserver.ts b/src/domobserver.ts index 80cf2a2..4b4f065 100644 --- a/src/domobserver.ts +++ b/src/domobserver.ts @@ -379,8 +379,10 @@ export class DOMObserver { } let startState = this.view.state let handled = applyDOMChange(this.view, domChange) - // The view wasn't updated - if (this.view.state == startState) this.view.update([]) + // The view wasn't updated but DOM/selection changes were seen. Reset the view. + if (this.view.state == startState && + (domChange.bounds || domChange.newSel && !domChange.newSel.main.eq(this.view.state.selection.main))) + this.view.update([]) return handled }