Fix comments in Pane::close_items
This commit is contained in:
parent
7f92401bca
commit
ece8604547
1 changed files with 10 additions and 3 deletions
|
@ -491,6 +491,11 @@ impl Pane {
|
||||||
items_to_close.push(item.boxed_clone());
|
items_to_close.push(item.boxed_clone());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If a buffer is open both in a singleton editor and in a multibuffer, make sure
|
||||||
|
// to focus the singleton buffer when prompting to save that buffer, as opposed
|
||||||
|
// to focusing the multibuffer, because this gives the user a more clear idea
|
||||||
|
// of what content they would be saving.
|
||||||
items_to_close.sort_by_key(|item| !item.is_singleton(cx));
|
items_to_close.sort_by_key(|item| !item.is_singleton(cx));
|
||||||
|
|
||||||
cx.spawn(|workspace, mut cx| async move {
|
cx.spawn(|workspace, mut cx| async move {
|
||||||
|
@ -508,10 +513,14 @@ impl Pane {
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// If an item hasn't yet been associated with a project entry, then always
|
||||||
|
// prompt to save it before closing it. Otherwise, check if the item has
|
||||||
|
// any project entries that are not open anywhere else in the workspace,
|
||||||
|
// AND that the user has not already been prompted to save. If there are
|
||||||
|
// any such project entries, prompt the user to save this item.
|
||||||
let should_save = if project_entry_ids.is_empty() {
|
let should_save = if project_entry_ids.is_empty() {
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
// Find the project entries that aren't open anywhere else in the workspace.
|
|
||||||
workspace.read_with(&cx, |workspace, cx| {
|
workspace.read_with(&cx, |workspace, cx| {
|
||||||
for item in workspace.items(cx) {
|
for item in workspace.items(cx) {
|
||||||
if !items_to_close
|
if !items_to_close
|
||||||
|
@ -529,8 +538,6 @@ impl Pane {
|
||||||
.any(|id| saved_project_entry_ids.insert(*id))
|
.any(|id| saved_project_entry_ids.insert(*id))
|
||||||
};
|
};
|
||||||
|
|
||||||
// If any of these project entries have not already been saved by an earlier item,
|
|
||||||
// then this item must be saved.
|
|
||||||
if should_save {
|
if should_save {
|
||||||
if !Self::save_item(project.clone(), &pane, item_ix, &item, true, &mut cx)
|
if !Self::save_item(project.clone(), &pane, item_ix, &item, true, &mut cx)
|
||||||
.await?
|
.await?
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue