diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-15 02:32:52 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-15 02:32:52 +0300 |
| commit | 88370e1516182ab519d22a12fa82d5780a40fee6 (patch) | |
| tree | b07be9b77abe14cdd3c1ff0e9acc1268729d8723 /src/app/actions.rs | |
| parent | 5d24d0d214d05858e344a9e15a63856dc1328eae (diff) | |
feat: add isolated pane graphics streaming
Diffstat (limited to 'src/app/actions.rs')
| -rw-r--r-- | src/app/actions.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/app/actions.rs b/src/app/actions.rs index 7cf43e79..68286952 100644 --- a/src/app/actions.rs +++ b/src/app/actions.rs @@ -1490,6 +1490,8 @@ impl AppState { } for pane_id in pane_ids { self.plugin_panes.remove(&pane_id); + self.pane_graphics_layers.remove(&pane_id); + self.pane_graphics_streams.remove(&pane_id); } } @@ -3113,6 +3115,26 @@ mod tests { state } + fn insert_test_pane_graphics_layer(state: &mut AppState, pane_id: PaneId) { + state.pane_graphics_layers.insert( + pane_id, + crate::app::state::PaneGraphicsLayer::new( + crate::api::schema::PaneGraphicsFormat::Rgba, + 1, + 1, + vec![1, 2, 3, 4], + crate::api::schema::PaneGraphicsPlacementParams::default(), + ), + ); + } + + fn insert_test_pane_graphics_state(state: &mut AppState, pane_id: PaneId) { + insert_test_pane_graphics_layer(state, pane_id); + state + .pane_graphics_streams + .insert(pane_id, "test-stream".into()); + } + fn mark_linked_worktree(state: &mut AppState, ws_idx: usize) { state.workspaces[ws_idx].worktree_space = Some(crate::workspace::WorktreeSpaceMembership { key: "repo-key".into(), @@ -5196,10 +5218,13 @@ mod tests { entrypoint: "board".into(), }, ); + insert_test_pane_graphics_state(&mut state, closed); state.close_pane(); assert_eq!(state.workspaces[0].panes.len(), 1); assert!(!state.plugin_panes.contains_key(&closed)); + assert!(!state.pane_graphics_layers.contains_key(&closed)); + assert!(!state.pane_graphics_streams.contains_key(&closed)); state.assert_invariants_for_test(); } @@ -5264,11 +5289,14 @@ mod tests { entrypoint: "board".into(), }, ); + insert_test_pane_graphics_state(&mut state, pane_id); state.close_tab(); assert!(!state.terminals.contains_key(&terminal_id)); assert!(!state.plugin_panes.contains_key(&pane_id)); + assert!(!state.pane_graphics_layers.contains_key(&pane_id)); + assert!(!state.pane_graphics_streams.contains_key(&pane_id)); state.assert_invariants_for_test(); } @@ -5284,11 +5312,14 @@ mod tests { entrypoint: "board".into(), }, ); + insert_test_pane_graphics_state(&mut state, pane_id); state.close_selected_workspace(); assert!(!state.terminals.contains_key(&terminal_id)); assert!(!state.plugin_panes.contains_key(&pane_id)); + assert!(!state.pane_graphics_layers.contains_key(&pane_id)); + assert!(!state.pane_graphics_streams.contains_key(&pane_id)); state.assert_invariants_for_test(); } |
