From 5f6b200d8d206b77b0c3aac9edb4b8d80f17eb5a Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sun, 1 Dec 2024 14:28:48 +0200 Subject: [PATCH] Do not change selections when opening FS entries (#21382) Follow-up of https://github.com/zed-industries/zed/pull/21375 When changing selections for FS entries, outline panel will be forced to change item to the first excerpt which is not what we want. Release Notes: - N/A --- crates/outline_panel/src/outline_panel.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/outline_panel/src/outline_panel.rs b/crates/outline_panel/src/outline_panel.rs index 103bf10eec..f36e144c88 100644 --- a/crates/outline_panel/src/outline_panel.rs +++ b/crates/outline_panel/src/outline_panel.rs @@ -857,7 +857,7 @@ impl OutlinePanel { fn open_entry( &mut self, entry: &PanelEntry, - change_selection: bool, + prefer_selection_change: bool, change_focus: bool, cx: &mut ViewContext, ) { @@ -872,9 +872,11 @@ impl OutlinePanel { Point::new(0.0, -(active_editor.read(cx).file_header_size() as f32)) }; + let mut change_selection = prefer_selection_change; let scroll_target = match entry { PanelEntry::FoldedDirs(..) | PanelEntry::Fs(FsEntry::Directory(..)) => None, PanelEntry::Fs(FsEntry::ExternalFile(buffer_id, _)) => { + change_selection = false; let scroll_target = multi_buffer_snapshot.excerpts().find_map( |(excerpt_id, buffer_snapshot, excerpt_range)| { if &buffer_snapshot.remote_id() == buffer_id { @@ -888,6 +890,7 @@ impl OutlinePanel { Some(offset_from_top).zip(scroll_target) } PanelEntry::Fs(FsEntry::File(_, file_entry, ..)) => { + change_selection = false; let scroll_target = self .project .update(cx, |project, cx| {