diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-26 14:48:57 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-26 14:50:13 +0300 |
| commit | 57c880f0ebaa5011abc90f4e2fd4f84fc072ce35 (patch) | |
| tree | 9f662b19cec2e9c9e50e87eb5e96def9e8ae9822 /src/app/state.rs | |
| parent | 9eec3029e13b791b8a4954e38d5bb7db6e2ff68f (diff) | |
feat: add global last-pane navigation
refs #287
Diffstat (limited to 'src/app/state.rs')
| -rw-r--r-- | src/app/state.rs | 8 |
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, |
