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
This commit is contained in:
parent
4d5415273e
commit
5f6b200d8d
1 changed files with 4 additions and 1 deletions
|
@ -857,7 +857,7 @@ impl OutlinePanel {
|
||||||
fn open_entry(
|
fn open_entry(
|
||||||
&mut self,
|
&mut self,
|
||||||
entry: &PanelEntry,
|
entry: &PanelEntry,
|
||||||
change_selection: bool,
|
prefer_selection_change: bool,
|
||||||
change_focus: bool,
|
change_focus: bool,
|
||||||
cx: &mut ViewContext<OutlinePanel>,
|
cx: &mut ViewContext<OutlinePanel>,
|
||||||
) {
|
) {
|
||||||
|
@ -872,9 +872,11 @@ impl OutlinePanel {
|
||||||
Point::new(0.0, -(active_editor.read(cx).file_header_size() as f32))
|
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 {
|
let scroll_target = match entry {
|
||||||
PanelEntry::FoldedDirs(..) | PanelEntry::Fs(FsEntry::Directory(..)) => None,
|
PanelEntry::FoldedDirs(..) | PanelEntry::Fs(FsEntry::Directory(..)) => None,
|
||||||
PanelEntry::Fs(FsEntry::ExternalFile(buffer_id, _)) => {
|
PanelEntry::Fs(FsEntry::ExternalFile(buffer_id, _)) => {
|
||||||
|
change_selection = false;
|
||||||
let scroll_target = multi_buffer_snapshot.excerpts().find_map(
|
let scroll_target = multi_buffer_snapshot.excerpts().find_map(
|
||||||
|(excerpt_id, buffer_snapshot, excerpt_range)| {
|
|(excerpt_id, buffer_snapshot, excerpt_range)| {
|
||||||
if &buffer_snapshot.remote_id() == buffer_id {
|
if &buffer_snapshot.remote_id() == buffer_id {
|
||||||
|
@ -888,6 +890,7 @@ impl OutlinePanel {
|
||||||
Some(offset_from_top).zip(scroll_target)
|
Some(offset_from_top).zip(scroll_target)
|
||||||
}
|
}
|
||||||
PanelEntry::Fs(FsEntry::File(_, file_entry, ..)) => {
|
PanelEntry::Fs(FsEntry::File(_, file_entry, ..)) => {
|
||||||
|
change_selection = false;
|
||||||
let scroll_target = self
|
let scroll_target = self
|
||||||
.project
|
.project
|
||||||
.update(cx, |project, cx| {
|
.update(cx, |project, cx| {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue