aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-08-04 15:37:33 +0300
committerGitHub <noreply@github.com>2026-08-04 15:37:33 +0300
commite6fa5289f2de03bc7babf2ec07efef6b45ed398f (patch)
tree9d4263ec646ff9e6d281f046529ccf16552e9fe4 /src
parentadb50cba9b15583db019bb655119915869e8c44e (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.rs12
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,