mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41: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<()> {
|
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() {
|
if let Some(text) = clip.text() {
|
||||||
self.dispatch_paste(text)?;
|
self.dispatch_paste(text)?;
|
||||||
return Ok(());
|
return Ok(());
|
||||||
|
|
|
||||||
|
|
@ -54,21 +54,32 @@ impl Tty {
|
||||||
_ => return Err("invalid FinishDrop type".into_lua_err()),
|
_ => return Err("invalid FinishDrop type".into_lua_err()),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Clipboard
|
||||||
b"ReadClipboard" => {
|
b"ReadClipboard" => {
|
||||||
let esc_seq = ReadClipboard {
|
write!(w, "{}", ReadClipboard {
|
||||||
mime: &t.raw_get::<BorrowedBytes>("mimes")?,
|
mime: &t.raw_get::<BorrowedBytes>("mimes")?,
|
||||||
pw: &t.raw_get::<BorrowedBytes>("pw")?,
|
pw: &t.raw_get::<BorrowedBytes>("pw")?,
|
||||||
name: &t.raw_get::<BorrowedBytes>("name")?,
|
name: &t.raw_get::<BorrowedBytes>("name")?,
|
||||||
primary: t.raw_get("primary")?,
|
primary: t.raw_get("primary")?,
|
||||||
};
|
})
|
||||||
write!(w, "{}", esc_seq)
|
|
||||||
}
|
}
|
||||||
b"WriteClipboard" => {
|
b"WriteClipboard" => {
|
||||||
let mime = &t.raw_get::<BorrowedBytes>("mime")?;
|
let mut data = Vec::new();
|
||||||
let payload = &t.raw_get::<BorrowedBytes>("data")?;
|
for v in &t.sequence_values::<Table>().collect::<Result<Vec<_>, mlua::Error>>()? {
|
||||||
let alias = &t.raw_get::<BorrowedBytes>("alias")?;
|
data.push((
|
||||||
write!(w, "{}", WriteClipboard { data: vec![WriteClipboardData { mime, payload, alias }] })
|
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()),
|
_ => return Err("invalid sequence kind".into_lua_err()),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue