aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-26 17:08:03 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-26 17:08:03 +0300
commit471041690af928d9a4d4cda8e4963cc7dcb3d6a8 (patch)
treea55441dc408c45821139e1d06fd33d5efec3bdcb /src
parent2debcec74c983c5a3821678daf6b4c4ef00fc51e (diff)
fix: ignore empty clipboard writes
refs #1893
Diffstat (limited to 'src')
-rw-r--r--src/ghostty/mod.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/ghostty/mod.rs b/src/ghostty/mod.rs
index 66182681..c4541948 100644
--- a/src/ghostty/mod.rs
+++ b/src/ghostty/mod.rs
@@ -534,7 +534,6 @@ unsafe fn capture_clipboard_write(
// SAFETY: userdata is the TerminalCallbackState installed with this terminal.
let state = unsafe { &mut *userdata.cast::<TerminalCallbackState>() };
if request.contents_len == 0 {
- state.clipboard_writes.push(Vec::new());
return ffi::GhosttyClipboardWriteResult_GHOSTTY_CLIPBOARD_WRITE_RESULT_SUCCESS;
}
if request.contents_len != 1 {
@@ -3839,7 +3838,7 @@ mod tests {
}
#[test]
- fn clipboard_callback_rejects_writes_the_text_pipeline_cannot_represent() {
+ fn clipboard_callback_ignores_clear_and_rejects_unsupported_writes() {
let mut terminal = Terminal::new(10, 5, 0).unwrap();
let full_size = std::mem::size_of::<ffi::GhosttyClipboardWrite>();
let success = ffi::GhosttyClipboardWriteResult_GHOSTTY_CLIPBOARD_WRITE_RESULT_SUCCESS;
@@ -3851,7 +3850,7 @@ mod tests {
invoke_clipboard_callback(&mut terminal, &[], full_size),
success
);
- assert_eq!(terminal.take_clipboard_writes(), vec![Vec::<u8>::new()]);
+ assert!(terminal.take_clipboard_writes().is_empty());
let empty = test_clipboard_content(b"text/plain", b"");
assert_eq!(
@@ -3893,7 +3892,7 @@ mod tests {
assert!(terminal.take_clipboard_writes().is_empty());
terminal.write(b"\x1b]52;c;\x07");
- assert_eq!(terminal.take_clipboard_writes(), vec![Vec::<u8>::new()]);
+ assert!(terminal.take_clipboard_writes().is_empty());
}
#[test]