aboutsummaryrefslogtreecommitdiff
path: root/src/client/events.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/events.rs')
-rw-r--r--src/client/events.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/client/events.rs b/src/client/events.rs
new file mode 100644
index 00000000..43f7b8ad
--- /dev/null
+++ b/src/client/events.rs
@@ -0,0 +1,34 @@
+use super::*;
+
+/// Internal events for the client event loop.
+pub(super) enum ClientLoopEvent {
+ #[cfg(unix)]
+ StdinInput(Vec<u8>),
+ #[cfg(unix)]
+ PixelMouse(Vec<u8>, crate::input::mouse::HostGeometry),
+ #[cfg(unix)]
+ DirectGraphicsResponse(direct_graphics::Response),
+ #[cfg(windows)]
+ StdinEvents(Vec<crate::protocol::ClientInputEvent>),
+ Resize(u16, u16, u32, u32, bool),
+ TerminalUnavailable(io::Error),
+ ServerMessage {
+ endpoint_id: endpoint::ClientEndpointId,
+ generation: u64,
+ message: Box<ServerMessage>,
+ },
+ ServerDisconnected {
+ endpoint_id: endpoint::ClientEndpointId,
+ generation: u64,
+ },
+ EndpointSupervisor(endpoint::EndpointSupervisorEvent),
+ EndpointCatalog(Result<Vec<endpoint::SavedSshEndpoint>, String>),
+ ActivateEndpoint {
+ endpoint_id: endpoint::ClientEndpointId,
+ target: Option<shell::ClientEndpointFocusTarget>,
+ /// A superseded handoff deliberately starts a fresh target-on epoch even when source and
+ /// latest target have the same identity after restoration.
+ force: bool,
+ },
+ Timer,
+}