Refold updated patch only if the patch was already folded (#19462)
Release Notes: - N/A
This commit is contained in:
parent
781fff220c
commit
e8207288e5
1 changed files with 10 additions and 2 deletions
|
@ -2219,6 +2219,7 @@ impl ContextEditor {
|
|||
merge_adjacent: false,
|
||||
};
|
||||
|
||||
let should_refold;
|
||||
if let Some(state) = self.patches.get_mut(&range) {
|
||||
replaced_blocks.insert(state.footer_block_id, render_block);
|
||||
if let Some(editor_state) = &state.editor {
|
||||
|
@ -2233,6 +2234,9 @@ impl ContextEditor {
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
should_refold =
|
||||
snapshot.intersects_fold(patch_start.to_offset(&snapshot.buffer_snapshot));
|
||||
} else {
|
||||
let block_ids = editor.insert_blocks(
|
||||
[BlockProperties {
|
||||
|
@ -2266,10 +2270,14 @@ impl ContextEditor {
|
|||
update_task: None,
|
||||
},
|
||||
);
|
||||
|
||||
should_refold = true;
|
||||
}
|
||||
|
||||
editor.unfold_ranges([patch_start..patch_end], true, false, cx);
|
||||
editor.fold_ranges([(patch_start..patch_end, header_placeholder)], false, cx);
|
||||
if should_refold {
|
||||
editor.unfold_ranges([patch_start..patch_end], true, false, cx);
|
||||
editor.fold_ranges([(patch_start..patch_end, header_placeholder)], false, cx);
|
||||
}
|
||||
}
|
||||
|
||||
editor.remove_creases(removed_crease_ids, cx);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue