aboutsummaryrefslogtreecommitdiff
path: root/src/app/state.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-26 14:48:57 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-26 14:50:13 +0300
commit57c880f0ebaa5011abc90f4e2fd4f84fc072ce35 (patch)
tree9f662b19cec2e9c9e50e87eb5e96def9e8ae9822 /src/app/state.rs
parent9eec3029e13b791b8a4954e38d5bb7db6e2ff68f (diff)
feat: add global last-pane navigation
refs #287
Diffstat (limited to 'src/app/state.rs')
-rw-r--r--src/app/state.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/app/state.rs b/src/app/state.rs
index b22dc6a3..5e6aeafd 100644
--- a/src/app/state.rs
+++ b/src/app/state.rs
@@ -1028,6 +1028,12 @@ pub enum SidebarWidthSource {
Manual,
}
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub(crate) struct PaneFocusTarget {
+ pub workspace_id: String,
+ pub pane_id: PaneId,
+}
+
/// All application state — pure data, no channels or async runtime.
/// Testable without PTYs or a tokio runtime.
pub struct AppState {
@@ -1037,6 +1043,7 @@ pub struct AppState {
pub direct_attach_resize_locks: std::collections::HashSet<crate::terminal::TerminalId>,
pub workspaces: Vec<Workspace>,
pub active: Option<usize>,
+ pub(crate) previous_pane_focus: Option<PaneFocusTarget>,
pub selected: usize,
pub mode: Mode,
pub should_quit: bool,
@@ -1337,6 +1344,7 @@ impl AppState {
direct_attach_resize_locks: std::collections::HashSet::new(),
workspaces: Vec::new(),
active: None,
+ previous_pane_focus: None,
selected: 0,
mode: Mode::Navigate,
should_quit: false,