aboutsummaryrefslogtreecommitdiff
path: root/src/client/shell/state.rs
diff options
context:
space:
mode:
authorEric Yue <jiacheng.yue@foxmail.com>2026-09-20 22:33:50 +0800
committerGitHub <noreply@github.com>2026-09-20 16:33:50 +0200
commit74505861e40c48e070e711bd4de662a17b0939b3 (patch)
tree736ad65c9dba956554529b4169bc54827dc342e3 /src/client/shell/state.rs
parentc00a62dda169beb472fc2f386d0f673ca100dfa4 (diff)
fix: keep workspace navigation visible in terminal theme (#4408)
* fix: keep workspace navigation visible in terminal theme refs #4300 * fix: clear workspace highlight on directional pane focus refs #4300 --------- Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
Diffstat (limited to 'src/client/shell/state.rs')
-rw-r--r--src/client/shell/state.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/client/shell/state.rs b/src/client/shell/state.rs
index 7128db57..55a065d5 100644
--- a/src/client/shell/state.rs
+++ b/src/client/shell/state.rs
@@ -880,6 +880,7 @@ pub(crate) struct ClientShellState {
pub(super) collapsed_endpoints: HashSet<ClientEndpointId>,
pub(super) mode: ClientShellMode,
pub(super) navigate_workspace_id: Option<WorkspaceNavigationTarget>,
+ pub(super) pending_workspace_highlight: Option<PendingWorkspaceHighlight>,
pub(super) reveal_navigation_workspace: bool,
pub(super) overlay: Option<ClientShellOverlay>,
pub(super) previous_pane_id: Option<String>,
@@ -1043,6 +1044,7 @@ impl ClientShellState {
collapsed_endpoints: HashSet::new(),
mode: ClientShellMode::Terminal,
navigate_workspace_id: None,
+ pending_workspace_highlight: None,
reveal_navigation_workspace: false,
overlay,
previous_pane_id: None,
@@ -1233,6 +1235,7 @@ impl ClientShellState {
self.endpoint_error = None;
self.endpoint_error_deadline = None;
self.navigate_workspace_id = None;
+ self.pending_workspace_highlight = None;
self.overlay = self
.config
.startup_onboarding
@@ -1549,6 +1552,7 @@ impl ClientShellState {
}
}
self.snapshot = Some(snapshot);
+ self.reconcile_pending_workspace_highlight();
let pending_surface = self.pending_pane_surface.take();
if let Some(surface) = pending_surface {
let matching = self.snapshot.as_ref().is_some_and(|snapshot| {