diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-06 23:06:00 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-06 23:06:00 +0300 |
| commit | 56edcbcba83b8ff7f6f69ee4231f163e97df3346 (patch) | |
| tree | e6eb1c31fd8f9a317fe1d6d49b019037f14b4746 /src/api/schema/events.rs | |
| parent | efceb30f0b447196615e3b2821d12ef82adcb3e2 (diff) | |
feat: expose pane scroll state
Diffstat (limited to 'src/api/schema/events.rs')
| -rw-r--r-- | src/api/schema/events.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/api/schema/events.rs b/src/api/schema/events.rs index aff3d2a2..41b9907d 100644 --- a/src/api/schema/events.rs +++ b/src/api/schema/events.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use serde::{Deserialize, Serialize}; use super::common::{AgentStatus, ReadSource}; -use super::panes::{PaneInfo, PaneReadResult}; +use super::panes::{PaneInfo, PaneReadResult, PaneScrollInfo}; use super::tabs::TabInfo; use super::workspaces::WorkspaceInfo; use super::worktrees::WorktreeInfo; @@ -72,6 +72,8 @@ pub enum Subscription { #[serde(default, skip_serializing_if = "Option::is_none")] agent_status: Option<AgentStatus>, }, + #[serde(rename = "pane.scroll_changed")] + PaneScrollChanged { pane_id: String }, #[serde(rename = "layout.updated")] LayoutUpdated {}, } @@ -350,6 +352,8 @@ pub enum SubscriptionEventKind { PaneOutputMatched, #[serde(rename = "pane.agent_status_changed")] PaneAgentStatusChanged, + #[serde(rename = "pane.scroll_changed")] + ScrollChanged, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] @@ -363,6 +367,7 @@ pub struct SubscriptionEventEnvelope { pub enum SubscriptionEventData { PaneOutputMatched(PaneOutputMatchedEvent), PaneAgentStatusChanged(PaneAgentStatusChangedEvent), + ScrollChanged(PaneScrollChangedEvent), } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] @@ -389,6 +394,13 @@ pub struct PaneAgentStatusChangedEvent { pub state_labels: HashMap<String, String>, } +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] +pub struct PaneScrollChangedEvent { + pub pane_id: String, + pub workspace_id: String, + pub scroll: PaneScrollInfo, +} + #[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(tag = "type", rename_all = "snake_case")] pub enum EventData { |
