mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-22 23:31:05 +00:00
Rebase and implment multi-mimetype copies from lua
This commit is contained in:
parent
4943694f68
commit
b74dab360f
2 changed files with 19 additions and 8 deletions
|
|
@ -104,7 +104,7 @@ impl<'a> Dispatcher<'a> {
|
|||
}
|
||||
|
||||
fn dispatch_clipboard(&mut self, clip: ClipboardEvent) -> Result<()> {
|
||||
if self.app.core.input.main.visible {
|
||||
if self.app.core.input.focus() {
|
||||
if let Some(text) = clip.text() {
|
||||
self.dispatch_paste(text)?;
|
||||
return Ok(());
|
||||
|
|
|
|||
|
|
@ -54,21 +54,32 @@ impl Tty {
|
|||
_ => return Err("invalid FinishDrop type".into_lua_err()),
|
||||
},
|
||||
|
||||
// Clipboard
|
||||
b"ReadClipboard" => {
|
||||
let esc_seq = ReadClipboard {
|
||||
write!(w, "{}", ReadClipboard {
|
||||
mime: &t.raw_get::<BorrowedBytes>("mimes")?,
|
||||
pw: &t.raw_get::<BorrowedBytes>("pw")?,
|
||||
name: &t.raw_get::<BorrowedBytes>("name")?,
|
||||
primary: t.raw_get("primary")?,
|
||||
};
|
||||
write!(w, "{}", esc_seq)
|
||||
})
|
||||
}
|
||||
b"WriteClipboard" => {
|
||||
let mime = &t.raw_get::<BorrowedBytes>("mime")?;
|
||||
let payload = &t.raw_get::<BorrowedBytes>("data")?;
|
||||
let alias = &t.raw_get::<BorrowedBytes>("alias")?;
|
||||
write!(w, "{}", WriteClipboard { data: vec![WriteClipboardData { mime, payload, alias }] })
|
||||
let mut data = Vec::new();
|
||||
for v in &t.sequence_values::<Table>().collect::<Result<Vec<_>, mlua::Error>>()? {
|
||||
data.push((
|
||||
v.raw_get::<BorrowedBytes>("mime")?,
|
||||
v.raw_get::<BorrowedBytes>("data")?,
|
||||
v.raw_get::<BorrowedBytes>("alias")?,
|
||||
));
|
||||
}
|
||||
write!(w, "{}", WriteClipboard {
|
||||
data: data
|
||||
.iter()
|
||||
.map(|(m, p, a)| { WriteClipboardData { mime: &m, payload: &p, alias: &a } })
|
||||
.collect(),
|
||||
})
|
||||
}
|
||||
|
||||
_ => return Err("invalid sequence kind".into_lua_err()),
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue