aboutsummaryrefslogtreecommitdiff
path: root/src/client/shell/composition.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/shell/composition.rs')
-rw-r--r--src/client/shell/composition.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/client/shell/composition.rs b/src/client/shell/composition.rs
index 9b710dd5..b7ab4a96 100644
--- a/src/client/shell/composition.rs
+++ b/src/client/shell/composition.rs
@@ -147,7 +147,11 @@ impl ClientShellState {
FrameData::from_ratatui_buffer_with_hyperlinks(&buffer, None, &[])
}
- pub(crate) fn compose(&mut self, cols: u16, rows: u16) -> Option<FrameData> {
+ pub(crate) fn compose(
+ &mut self,
+ cols: u16,
+ rows: u16,
+ ) -> Option<crate::client::frame_output::ComposedFrame> {
self.last_composed_at = Some(std::time::Instant::now());
self.selection_repaint_deadline = None;
if self.last_composed_size != Some((cols, rows)) && self.mode == ClientShellMode::Navigate {
@@ -167,7 +171,7 @@ impl ClientShellState {
&& self.navigation_target_valid(&pending.target)
});
if self.snapshot.is_none() || self.pane_surface.is_none() {
- return Some(self.compose_unavailable(cols, rows));
+ return Some(self.compose_unavailable(cols, rows).into());
}
let snapshot = self.snapshot.as_deref()?;
// Do not compose a retained surface while waiting for its matching snapshot or
@@ -716,8 +720,8 @@ impl ClientShellState {
self.hits.pane_splits.clear();
self.hits.popup = None;
}
- self.compose_graphics(&mut frame, layout, &occlusion);
- Some(frame)
+ let graphics = self.compose_graphics(layout, &occlusion);
+ Some(crate::client::frame_output::ComposedFrame { frame, graphics })
}
}