diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-08-09 02:04:39 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-09 02:04:39 +0300 |
| commit | 1777e9bba32b953ed1ad203b4a16d01105539000 (patch) | |
| tree | 22096973812c9baba822453d8470bdcfe64fc2a6 /src/app/runtime.rs | |
| parent | 36a8d36a7258e08b40c01bf521b1f4006525f143 (diff) | |
feat(graphics): add direct pane frame streaming (#2523)
* feat(graphics): add direct pane frame streaming
* feat(graphics): expose pane visibility
* test(graphics): preserve legacy terminal image output
* fix(graphics): harden streaming lifecycle
* fix(input): preserve mouse releases outside panes
Diffstat (limited to 'src/app/runtime.rs')
| -rw-r--r-- | src/app/runtime.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/app/runtime.rs b/src/app/runtime.rs index 49420381..31426f87 100644 --- a/src/app/runtime.rs +++ b/src/app/runtime.rs @@ -61,6 +61,11 @@ impl App { msg: crate::api::ApiRequestMessage, ) -> bool { let previous_mode = self.state.mode; + let stream_open = match &msg.request.method { + crate::api::schema::Method::PaneGraphicsStreamOpen(params) => Some(params.clone()), + _ => None, + }; + let stream_active = msg.stream_active.clone(); let mut changed = self.expire_due_metadata(Instant::now()); changed |= crate::api::request_changes_ui(&msg.request); let skip_default_workspace = matches!( @@ -83,6 +88,9 @@ impl App { return changed | deferred_changed; } let response = self.handle_api_request(msg.request); + if let (Some(params), Some(active)) = (stream_open.as_ref(), stream_active) { + self.attach_pane_graphics_stream_active(params, active, &response); + } if !skip_default_workspace { changed |= self.ensure_default_workspace(); } |
