diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/headless.rs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/server/headless.rs b/src/server/headless.rs index 4d9a2cc5..e65b741c 100644 --- a/src/server/headless.rs +++ b/src/server/headless.rs @@ -1150,8 +1150,8 @@ impl HeadlessServer { let data = base64::engine::general_purpose::STANDARD.encode(content.as_slice()); self.send_to_client(client_id, ServerMessage::Clipboard { data }); } - // ClipboardWrite doesn't change visual state — no render needed. - false + self.app.show_clipboard_feedback(); + true } AppEvent::StateChanged { pane_id, agent, .. } => { // Capture toast before handling. @@ -2428,6 +2428,16 @@ impl HeadlessServer { if self .app + .copy_feedback_deadline + .is_some_and(|deadline| now >= deadline) + { + self.app.copy_feedback_deadline = None; + self.app.state.copy_feedback = None; + changed = true; + } + + if self + .app .next_animation_tick .is_some_and(|deadline| now >= deadline) { @@ -4544,7 +4554,16 @@ next_tab = "" content: b"test".to_vec(), }); - assert!(!changed); + assert!(changed); + assert_eq!( + server + .app + .state + .copy_feedback + .as_ref() + .map(|feedback| feedback.message.as_str()), + Some("copied to clipboard") + ); match read_server_message( foreground_control_rx .recv_timeout(Duration::from_millis(100)) |
