aboutsummaryrefslogtreecommitdiff
path: root/src/server/clients.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/clients.rs')
-rw-r--r--src/server/clients.rs24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/server/clients.rs b/src/server/clients.rs
index bb0f31c6..0d3d9ae0 100644
--- a/src/server/clients.rs
+++ b/src/server/clients.rs
@@ -24,7 +24,6 @@ pub(crate) type RenderTarget = (
pub(crate) enum DeferredRender {
#[default]
None,
- Graphics,
Full,
}
@@ -56,14 +55,18 @@ pub(crate) struct ClientConnection {
pub(crate) render_state: ClientRenderState,
/// Client-local host Kitty graphics cache.
pub(crate) graphics_cache: crate::kitty_graphics::HostGraphicsCache,
+ /// Passive eligibility for audited local Kitty regular-file graphics.
+ pub(crate) direct_graphics: bool,
+ /// Whether this frontend preserves exact SGR pixel reports.
+ pub(crate) pixel_mouse: bool,
/// Whether the next graphics frame must clear and rebuild host-side Kitty state.
pub(crate) graphics_surface_reset_pending: bool,
/// Whether an ordinary render was skipped because the render channel was full.
pub(crate) render_pending: bool,
- /// Whether a pane-graphics-only render was skipped because the channel was full.
- pane_graphics_render_pending: bool,
/// Last host mouse capture mode sent to this client.
pub(crate) host_mouse_capture_active: Option<bool>,
+ /// Last SGR pixel provenance mode sent to this client.
+ pub(crate) host_sgr_pixels_active: Option<bool>,
/// Last Kitty report-all mode sent to this client's host terminal.
pub(crate) host_keyboard_report_all_active: Option<bool>,
/// Temporary files staged from this client's local clipboard image pastes.
@@ -125,10 +128,12 @@ impl ClientConnection {
last_activity,
render_state: ClientRenderState::new(render_encoding),
graphics_cache: crate::kitty_graphics::HostGraphicsCache::default(),
+ direct_graphics: false,
+ pixel_mouse: false,
graphics_surface_reset_pending: false,
render_pending: false,
- pane_graphics_render_pending: false,
host_mouse_capture_active: None,
+ host_sgr_pixels_active: None,
host_keyboard_report_all_active: None,
staged_clipboard_files: Vec::new(),
writer,
@@ -137,14 +142,11 @@ impl ClientConnection {
pub(crate) fn request_repaint(&mut self) {
self.render_state.request_repaint();
- self.pane_graphics_render_pending = false;
}
pub(crate) fn deferred_render(&self) -> DeferredRender {
if self.render_pending {
DeferredRender::Full
- } else if self.pane_graphics_render_pending {
- DeferredRender::Graphics
} else {
DeferredRender::None
}
@@ -152,18 +154,10 @@ impl ClientConnection {
pub(crate) fn clear_deferred_render(&mut self) {
self.render_pending = false;
- self.pane_graphics_render_pending = false;
}
pub(crate) fn defer_full_render(&mut self) {
self.render_pending = true;
- self.pane_graphics_render_pending = false;
- }
-
- pub(crate) fn defer_pane_graphics_render(&mut self) {
- if !self.render_pending {
- self.pane_graphics_render_pending = true;
- }
}
pub(crate) fn take_deferred_render(&mut self) -> DeferredRender {