diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-28 16:19:42 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-28 16:19:42 +0300 |
| commit | 80c0c07250d22f69d3fa05cb1700302d66180eb8 (patch) | |
| tree | 9e1903d65c83263354be4b2166f3a7c92dc2a8e2 /src/server/client_transport.rs | |
| parent | 8c8cb49c237eec2f82192dd831ec7308905f2c0a (diff) | |
perf: send scrolling pane output as row shifts and skip blank cells (#4711)
* perf: send scrolling pane output as row shifts and skip blank cells
* fix: keep expanded scroll patches disjoint for the fast presentation path
Diffstat (limited to 'src/server/client_transport.rs')
| -rw-r--r-- | src/server/client_transport.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/client_transport.rs b/src/server/client_transport.rs index 465408f5..88daf250 100644 --- a/src/server/client_transport.rs +++ b/src/server/client_transport.rs @@ -418,6 +418,7 @@ pub(crate) enum ServerEvent { surface_active: bool, surface_reuse: bool, surface_delta: bool, + surface_scroll: bool, writer: ClientWriter, }, /// A client sent an input message. @@ -785,6 +786,7 @@ pub(crate) fn handle_client_handshake( hello.surface_active, hello.surface_reuse, hello.surface_delta, + hello.surface_scroll, )), ) } @@ -881,6 +883,7 @@ pub(crate) fn handle_client_handshake( surface_active, surface_reuse, surface_delta, + surface_scroll, )) = shell_options { ServerEvent::ClientShellConnected { @@ -896,6 +899,7 @@ pub(crate) fn handle_client_handshake( surface_active, surface_reuse, surface_delta, + surface_scroll, writer, } } else { @@ -1472,6 +1476,7 @@ mod tests { surface_active: true, surface_reuse: false, surface_delta: false, + surface_scroll: false, snapshot_codecs: vec![crate::protocol::endpoint::SNAPSHOT_CODEC_V1.into()], surface_codecs: vec![crate::protocol::endpoint::SURFACE_CODEC_V1.into()], input_codecs: vec![crate::protocol::endpoint::INPUT_CODEC_V1.into()], @@ -1989,10 +1994,12 @@ mod tests { surface_active, surface_reuse, surface_delta, + surface_scroll, writer, } => { assert!(!surface_reuse); assert!(!surface_delta); + assert!(!surface_scroll); assert_eq!(client_id, 43); assert_eq!((surface_cols, surface_rows), (80, 29)); assert_eq!((cell_width_px, cell_height_px), (8, 16)); |
