diff options
| author | akbash <akbash@herdr.dev> | 2026-08-04 15:37:33 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-04 15:37:33 +0300 |
| commit | e6fa5289f2de03bc7babf2ec07efef6b45ed398f (patch) | |
| tree | 9d4263ec646ff9e6d281f046529ccf16552e9fe4 /src | |
| parent | adb50cba9b15583db019bb655119915869e8c44e (diff) | |
fix(ui): preserve sidebar scroll across clients (#2280)
refs #2255
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/headless.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/headless.rs b/src/server/headless.rs index f72d1a94..752f8e8c 100644 --- a/src/server/headless.rs +++ b/src/server/headless.rs @@ -4072,6 +4072,12 @@ impl HeadlessServer { } else { crate::kitty_graphics::HostCellSize::default() }; + let preserved_scroll = (!is_foreground).then_some(( + self.app.state.workspace_scroll, + self.app.state.agent_panel_scroll, + self.app.state.tab_scroll, + self.app.state.mobile_switcher_scroll, + )); let (buffer, cursor) = crate::server::render_stream::render_virtual_with_runtime_registry( &mut self.app.state, @@ -4080,6 +4086,12 @@ impl HeadlessServer { is_foreground, render_cell_size, ); + if let Some((workspace, agent_panel, tab, mobile_switcher)) = preserved_scroll { + self.app.state.workspace_scroll = workspace; + self.app.state.agent_panel_scroll = agent_panel; + self.app.state.tab_scroll = tab; + self.app.state.mobile_switcher_scroll = mobile_switcher; + } crate::render_prof::duration_since( "full_render.render_virtual", render_started, |
