From 768b71fbb29e40daee308eb256983169325473e2 Mon Sep 17 00:00:00 2001 From: Kuba Niegowski Date: Wed, 7 May 2025 15:37:42 +0200 Subject: [PATCH] Force DOM selection update after some view children changes on Safari. --- packages/ckeditor5-engine/src/view/renderer.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/ckeditor5-engine/src/view/renderer.ts b/packages/ckeditor5-engine/src/view/renderer.ts index 0a7888a48ff..7e5e1dca589 100644 --- a/packages/ckeditor5-engine/src/view/renderer.ts +++ b/packages/ckeditor5-engine/src/view/renderer.ts @@ -1117,6 +1117,12 @@ export default class Renderer extends /* #__PURE__ */ ObservableMixin() { const oldViewSelection = domSelection && this.domConverter.domSelectionToView( domSelection ); if ( oldViewSelection && this.selection.isEqual( oldViewSelection ) ) { + // Safari has a bug where the DOM selection does not reflect the user's visible selection, + // especially after complex DOM mutations. Force selection update if any DOM children were changed. + if ( env.isSafari && this.markedChildren.size && this.selection.isCollapsed ) { + return true; + } + return false; }