mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-11 13:10:54 +00:00
Update window edited status when pane item is removed
This commit is contained in:
parent
2dae0ddcdb
commit
a21dbdd0d6
4 changed files with 11 additions and 3 deletions
|
@ -22,7 +22,7 @@ use smallvec::SmallVec;
|
|||
use smol::prelude::*;
|
||||
use std::{
|
||||
any::{type_name, Any, TypeId},
|
||||
cell::{RefCell, RefMut},
|
||||
cell::RefCell,
|
||||
collections::{hash_map::Entry, BTreeMap, HashMap, HashSet, VecDeque},
|
||||
fmt::{self, Debug},
|
||||
hash::{Hash, Hasher},
|
||||
|
@ -567,8 +567,8 @@ impl TestAppContext {
|
|||
.assert_dropped(handle.id())
|
||||
}
|
||||
|
||||
fn window_mut(&self, window_id: usize) -> RefMut<platform::test::Window> {
|
||||
RefMut::map(self.cx.borrow_mut(), |state| {
|
||||
fn window_mut(&self, window_id: usize) -> std::cell::RefMut<platform::test::Window> {
|
||||
std::cell::RefMut::map(self.cx.borrow_mut(), |state| {
|
||||
let (_, window) = state
|
||||
.presenters_and_platform_windows
|
||||
.get_mut(&window_id)
|
||||
|
|
|
@ -110,6 +110,7 @@ pub enum Event {
|
|||
Activate,
|
||||
ActivateItem { local: bool },
|
||||
Remove,
|
||||
RemoveItem,
|
||||
Split(SplitDirection),
|
||||
ChangeItemTitle,
|
||||
}
|
||||
|
@ -575,6 +576,7 @@ impl Pane {
|
|||
}
|
||||
|
||||
let item = pane.items.remove(item_ix);
|
||||
cx.emit(Event::RemoveItem);
|
||||
if pane.items.is_empty() {
|
||||
item.deactivated(cx);
|
||||
pane.update_toolbar(cx);
|
||||
|
|
|
@ -1482,6 +1482,9 @@ impl Workspace {
|
|||
}
|
||||
self.update_window_edited(cx);
|
||||
}
|
||||
pane::Event::RemoveItem => {
|
||||
self.update_window_edited(cx);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
error!("pane {} not found", pane_id);
|
||||
|
|
|
@ -462,7 +462,10 @@ mod tests {
|
|||
.downcast::<Editor>()
|
||||
.unwrap()
|
||||
});
|
||||
assert!(!cx.is_window_edited(workspace.window_id()));
|
||||
|
||||
editor.update(cx, |editor, cx| editor.insert("EDIT", cx));
|
||||
assert!(cx.is_window_edited(workspace.window_id()));
|
||||
|
||||
assert!(!cx.simulate_window_close(workspace.window_id()));
|
||||
executor.run_until_parked();
|
||||
|
|
Loading…
Reference in a new issue