Change summary
crates/search/src/project_search.rs | 11 +++++++++--
crates/workspace/src/pane.rs | 11 ++---------
2 files changed, 11 insertions(+), 11 deletions(-)
Detailed changes
@@ -1055,10 +1055,17 @@ impl ProjectSearchView {
let is_dirty = self.is_dirty(cx);
- let should_confirm_save = !will_autosave && is_dirty;
+ let skip_save_on_close = self
+ .workspace
+ .read_with(cx, |workspace, cx| {
+ workspace::Pane::skip_save_on_close(&self.results_editor, workspace, cx)
+ })
+ .unwrap_or(false);
+
+ let should_prompt_to_save = !skip_save_on_close && !will_autosave && is_dirty;
cx.spawn_in(window, async move |this, cx| {
- let should_search = if should_confirm_save {
+ let should_search = if should_prompt_to_save {
let options = &["Save", "Don't Save", "Cancel"];
let result_channel = this.update_in(cx, |_, window, cx| {
window.prompt(
@@ -1449,10 +1449,7 @@ impl Pane {
}
});
if dirty_project_item_ids.is_empty() {
- if item.is_singleton(cx) && item.is_dirty(cx) {
- return false;
- }
- return true;
+ return !(item.is_singleton(cx) && item.is_dirty(cx));
}
for open_item in workspace.items(cx) {
@@ -1465,11 +1462,7 @@ impl Pane {
let other_project_item_ids = open_item.project_item_model_ids(cx);
dirty_project_item_ids.retain(|id| !other_project_item_ids.contains(id));
}
- if dirty_project_item_ids.is_empty() {
- return true;
- }
-
- false
+ return dirty_project_item_ids.is_empty();
}
pub(super) fn file_names_for_prompt(