From e4ca24afbb2a5dc8e16922c2aac2bb019e329208 Mon Sep 17 00:00:00 2001 From: Neil Date: Thu, 10 Sep 2026 17:55:33 -0700 Subject: [PATCH] fix(diffs): let the native layer own selection restore whenever it saved one The ownership rule keyed on a deletions-side selection specifically, but the native layer skips only the EDITABLE additions side. On a read-only diff with Cmd+F find open, isEditable is false, so the native layer saved an additions-side selection while the find-mode editor also restored its own -- both drove selection. Key on whether a native selection exists at all, which is the actual invariant: the native layer saves exactly what it intends to restore. --- .../editor/pierre-diff/pierre-diff-edit-state.test.ts | 2 +- .../editor/pierre-diff/pierre-diff-edit-state.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/components/editor/pierre-diff/pierre-diff-edit-state.test.ts b/src/renderer/src/components/editor/pierre-diff/pierre-diff-edit-state.test.ts index 080ec0d2631..b243d7e3a8a 100644 --- a/src/renderer/src/components/editor/pierre-diff/pierre-diff-edit-state.test.ts +++ b/src/renderer/src/components/editor/pierre-diff/pierre-diff-edit-state.test.ts @@ -74,7 +74,7 @@ it('reuses matching dormant document history and view state', () => { editor.finish() }) -it('yields selection restore to the native layer for a deletions-side selection', () => { +it('yields selection restore to the native layer whenever it saved one', () => { const state = stored() states.set('native-owned', state) nativeViews.set('native-owned', { selection: { side: 'deletions' } }) diff --git a/src/renderer/src/components/editor/pierre-diff/pierre-diff-edit-state.ts b/src/renderer/src/components/editor/pierre-diff/pierre-diff-edit-state.ts index 31cc6972290..e68e9946cc2 100644 --- a/src/renderer/src/components/editor/pierre-diff/pierre-diff-edit-state.ts +++ b/src/renderer/src/components/editor/pierre-diff/pierre-diff-edit-state.ts @@ -71,9 +71,10 @@ export const createPierreEditor: EditorFactory