From a36da363f14639085bec91d7a378d6c2eeaa6c58 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sun, 17 May 2026 01:41:16 +0300 Subject: refactor: extract terminal state and runtime from panes --- src/server/render_stream.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/server/render_stream.rs') diff --git a/src/server/render_stream.rs b/src/server/render_stream.rs index a921960c..94a43980 100644 --- a/src/server/render_stream.rs +++ b/src/server/render_stream.rs @@ -272,7 +272,10 @@ pub(crate) fn visible_hyperlinks(app_state: &AppState) -> Vec<((u16, u16), Strin let mut links = Vec::new(); for info in &app_state.view.pane_infos { - if let Some(runtime) = tab.runtimes.get(&info.id) { + if let Some(runtime) = tab + .terminal_id(info.id) + .and_then(|terminal_id| app_state.terminal_runtimes.get(terminal_id)) + { links.extend(runtime.visible_hyperlinks(info.inner_rect)); } } @@ -285,13 +288,12 @@ fn focused_terminal_cursor(app_state: &AppState) -> Option { } let ws_idx = app_state.active?; - let ws = app_state.workspaces.get(ws_idx)?; let info = app_state .view .pane_infos .iter() .find(|info| info.is_focused)?; - let rt = ws.runtime(info.id)?; + let rt = app_state.runtime_for_pane_in_workspace(ws_idx, info.id)?; let cursor = rt.cursor_state(info.inner_rect, true)?; Some(CursorState { x: cursor.x, -- cgit v1.2.3