diff options
| author | akbash <akbash@herdr.dev> | 2026-09-09 02:35:31 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-09 02:35:31 +0300 |
| commit | b9ce96869e89937278d673d70ae4c135dd318469 (patch) | |
| tree | fea7e39dad42f8cad1f1846af6babda546c1fa78 /src/client/shell/overlay_input.rs | |
| parent | 8be4cf765afddfd9cf3206602ba4dab682a29fa1 (diff) | |
feat: navigate and highlight workspaces across machines (#3755)
* fix: highlight workspace navigation with saved machines
refs #3754
* feat: navigate workspaces across connected machines
refs #3754
* feat: navigate workspaces across machines
refs #3754
---------
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
Diffstat (limited to 'src/client/shell/overlay_input.rs')
| -rw-r--r-- | src/client/shell/overlay_input.rs | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/client/shell/overlay_input.rs b/src/client/shell/overlay_input.rs index db089f4e..42e331af 100644 --- a/src/client/shell/overlay_input.rs +++ b/src/client/shell/overlay_input.rs @@ -313,11 +313,18 @@ impl ClientShellState { } pub(super) fn workspace_action_id(&self) -> Option<String> { - self.navigate_workspace_id.clone().or_else(|| { - self.snapshot - .as_deref() - .and_then(|snapshot| snapshot.focused_workspace_id.clone()) - }) + self.navigate_workspace_id + .as_ref() + .filter(|target| { + target.endpoint_id == self.active_endpoint_id + && self.navigation_target_valid(target) + }) + .map(|target| target.workspace_id.clone()) + .or_else(|| { + self.snapshot + .as_deref() + .and_then(|snapshot| snapshot.focused_workspace_id.clone()) + }) } pub(super) fn open_new_workspace_overlay(&mut self) { @@ -913,10 +920,8 @@ impl ClientShellState { } else if key.code == KeyCode::Esc { self.overlay = None; self.mode = ClientShellMode::Navigate; - self.navigate_workspace_id = self - .snapshot - .as_deref() - .and_then(|snapshot| snapshot.focused_workspace_id.clone()); + self.navigate_workspace_id = self.focused_navigation_target(); + self.reveal_navigation_workspace = true; outcome.repaint = true; } return; |
