terminal: Persist pinned tabs in terminal (#31921)
Closes #31098 Release Notes: - Fixed terminal pinned tab state not persisting across restarts.
This commit is contained in:
parent
3f90bc81bd
commit
f1aab1120d
4 changed files with 19 additions and 4 deletions
|
@ -230,6 +230,8 @@ pub enum Event {
|
|||
item: Box<dyn ItemHandle>,
|
||||
},
|
||||
Split(SplitDirection),
|
||||
ItemPinned,
|
||||
ItemUnpinned,
|
||||
JoinAll,
|
||||
JoinIntoNext,
|
||||
ChangeItemTitle,
|
||||
|
@ -274,6 +276,8 @@ impl fmt::Debug for Event {
|
|||
.field("item", &item.id())
|
||||
.field("save_intent", save_intent)
|
||||
.finish(),
|
||||
Event::ItemPinned => f.write_str("ItemPinned"),
|
||||
Event::ItemUnpinned => f.write_str("ItemUnpinned"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -780,11 +784,12 @@ impl Pane {
|
|||
}
|
||||
}
|
||||
|
||||
pub(crate) fn set_pinned_count(&mut self, count: usize) {
|
||||
/// Should only be used when deserializing a pane.
|
||||
pub fn set_pinned_count(&mut self, count: usize) {
|
||||
self.pinned_tab_count = count;
|
||||
}
|
||||
|
||||
pub(crate) fn pinned_count(&self) -> usize {
|
||||
pub fn pinned_count(&self) -> usize {
|
||||
self.pinned_tab_count
|
||||
}
|
||||
|
||||
|
@ -2074,6 +2079,7 @@ impl Pane {
|
|||
})
|
||||
.ok()?;
|
||||
}
|
||||
cx.emit(Event::ItemPinned);
|
||||
|
||||
Some(())
|
||||
});
|
||||
|
@ -2098,6 +2104,7 @@ impl Pane {
|
|||
})
|
||||
.ok()?;
|
||||
}
|
||||
cx.emit(Event::ItemUnpinned);
|
||||
|
||||
Some(())
|
||||
});
|
||||
|
|
|
@ -3761,6 +3761,7 @@ impl Workspace {
|
|||
}
|
||||
cx.notify();
|
||||
}
|
||||
pane::Event::ItemPinned | pane::Event::ItemUnpinned => {}
|
||||
}
|
||||
|
||||
if serialize_workspace {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue