blob: 85bdd1bb2ada00a240e1c4bdfeb10dcadeaba260 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
use std::time::Instant;
use super::{App, SESSION_SAVE_DEBOUNCE};
impl App {
pub(super) fn schedule_session_save(&mut self) {
if !self.no_session {
self.session_save_deadline = Some(Instant::now() + SESSION_SAVE_DEBOUNCE);
}
}
pub(crate) fn sync_session_save_schedule(&mut self) {
if self.state.session_dirty {
self.state.session_dirty = false;
self.schedule_session_save();
}
}
pub(crate) fn save_session_now(&mut self) {
if self.no_session {
self.session_save_deadline = None;
return;
}
if self.state.workspaces.is_empty() {
crate::persist::clear();
} else {
let snap = crate::persist::capture(
&self.state.workspaces,
&self.state.terminals,
&self.state.terminal_runtimes,
self.state.active,
self.state.selected,
self.state.agent_panel_scope,
self.state.sidebar_width,
self.state.sidebar_section_split,
);
crate::persist::save(&snap);
}
self.session_save_deadline = None;
}
}
|