fix: clipboard, preserve uncompressed special format data (#16100)

Signed-off-by: cuishuang <imcusg@gmail.com>
This commit is contained in:
cui fliter
2026-09-07 11:12:52 +08:00
committed by GitHub
parent 692113c87e
commit 92d787b885

View File

@@ -698,7 +698,7 @@ mod proto {
let content = if compress {
compressed
} else {
s.bytes().collect::<Vec<u8>>()
d
};
Clipboard {
compress,
@@ -794,6 +794,29 @@ mod proto {
msg
})
}
#[cfg(all(test, not(target_os = "android")))]
mod tests {
use super::{from_clipboard, special_to_proto};
use arboard::ClipboardData;
#[test]
fn preserves_uncompressed_special_clipboard_data() {
let data = vec![0x01, 0x02, 0x03];
let name = "custom-format".to_owned();
let clipboard = special_to_proto(data.clone(), name.clone());
assert!(!clipboard.compress);
assert_eq!(clipboard.content.as_ref(), data.as_slice());
assert_eq!(clipboard.special_name, name);
assert!(matches!(
from_clipboard(clipboard),
Some(ClipboardData::Special((restored_name, restored_data)))
if restored_name == name && restored_data == data
));
}
}
}
#[cfg(all(test, not(target_os = "android")))]