@@ -173,7 +173,7 @@ impl TabSwitcherDelegate {
};
cx.subscribe(&pane, |tab_switcher, _, event, cx| {
match event {
- PaneEvent::AddItem { .. } | PaneEvent::RemoveItem { .. } | PaneEvent::Remove => {
+ PaneEvent::AddItem { .. } | PaneEvent::RemovedItem { .. } | PaneEvent::Remove => {
tab_switcher.picker.update(cx, |picker, cx| {
let selected_item_id = picker.delegate.selected_item_id();
picker.delegate.update_matches(cx);
@@ -342,7 +342,7 @@ impl TerminalPanel {
) {
match event {
pane::Event::ActivateItem { .. } => self.serialize(cx),
- pane::Event::RemoveItem { .. } => self.serialize(cx),
+ pane::Event::RemovedItem { .. } => self.serialize(cx),
pane::Event::Remove => cx.emit(PanelEvent::Close),
pane::Event::ZoomIn => cx.emit(PanelEvent::ZoomIn),
pane::Event::ZoomOut => cx.emit(PanelEvent::ZoomOut),
@@ -169,7 +169,8 @@ pub enum Event {
AddItem { item: Box<dyn ItemHandle> },
ActivateItem { local: bool },
Remove,
- RemoveItem { item_id: EntityId },
+ RemoveItem { idx: usize },
+ RemovedItem { item_id: EntityId },
Split(SplitDirection),
ChangeItemTitle,
Focus,
@@ -189,8 +190,9 @@ impl fmt::Debug for Event {
.field("local", local)
.finish(),
Event::Remove => f.write_str("Remove"),
- Event::RemoveItem { item_id } => f
- .debug_struct("RemoveItem")
+ Event::RemoveItem { idx } => f.debug_struct("RemoveItem").field("idx", idx).finish(),
+ Event::RemovedItem { item_id } => f
+ .debug_struct("RemovedItem")
.field("item_id", item_id)
.finish(),
Event::Split(direction) => f
@@ -1302,9 +1304,11 @@ impl Pane {
}
}
+ cx.emit(Event::RemoveItem { idx: item_index });
+
let item = self.items.remove(item_index);
- cx.emit(Event::RemoveItem {
+ cx.emit(Event::RemovedItem {
item_id: item.item_id(),
});
if self.items.is_empty() {
@@ -2903,7 +2903,8 @@ impl Workspace {
}
self.update_window_edited(cx);
}
- pane::Event::RemoveItem { item_id } => {
+ pane::Event::RemoveItem { .. } => {}
+ pane::Event::RemovedItem { item_id } => {
cx.emit(Event::ActiveItemChanged);
self.update_window_edited(cx);
if let hash_map::Entry::Occupied(entry) = self.panes_by_item.entry(*item_id) {