move away from unmaintained clipboard crate and use arboard crate

This commit is contained in:
Marco Grassi 2022-11-26 00:30:54 +08:00 committed by Aaron Hill
parent ad81b3bf14
commit 6873cda76e
3 changed files with 82 additions and 35 deletions

107
Cargo.lock generated
View File

@ -92,6 +92,26 @@ dependencies = [
"num-traits",
]
[[package]]
name = "arboard"
version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854"
dependencies = [
"clipboard-win",
"core-graphics",
"image",
"log",
"objc",
"objc-foundation",
"objc_id",
"once_cell",
"parking_lot",
"thiserror",
"winapi",
"x11rb",
]
[[package]]
name = "arrayref"
version = "0.3.6"
@ -483,25 +503,14 @@ dependencies = [
"os_str_bytes",
]
[[package]]
name = "clipboard"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25a904646c0340239dcf7c51677b33928bf24fdf424b79a57909c0109075b2e7"
dependencies = [
"clipboard-win",
"objc",
"objc-foundation",
"objc_id",
"x11-clipboard",
]
[[package]]
name = "clipboard-win"
version = "2.2.0"
version = "4.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3a093d6fed558e5fe24c3dfc85a68bb68f1c824f440d3ba5aca189e2998786b"
checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219"
dependencies = [
"error-code",
"str-buf",
"winapi",
]
@ -1345,6 +1354,16 @@ dependencies = [
"libc",
]
[[package]]
name = "error-code"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
dependencies = [
"libc",
"str-buf",
]
[[package]]
name = "euclid"
version = "0.22.7"
@ -1720,6 +1739,16 @@ dependencies = [
"version_check",
]
[[package]]
name = "gethostname"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
dependencies = [
"libc",
"winapi",
]
[[package]]
name = "getrandom"
version = "0.2.8"
@ -3401,9 +3430,9 @@ name = "ruffle_desktop"
version = "0.1.0"
dependencies = [
"anyhow",
"arboard",
"bytemuck",
"clap",
"clipboard",
"cpal",
"dirs",
"embed-resource",
@ -4055,6 +4084,12 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
[[package]]
name = "str-buf"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
[[package]]
name = "strength_reduce"
version = "0.2.4"
@ -4852,6 +4887,15 @@ dependencies = [
"winapi",
]
[[package]]
name = "winapi-wsapoll"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
dependencies = [
"winapi",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
@ -5058,15 +5102,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
[[package]]
name = "x11-clipboard"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89bd49c06c9eb5d98e6ba6536cf64ac9f7ee3a009b2f53996d405b3944f6bcea"
dependencies = [
"xcb",
]
[[package]]
name = "x11-dl"
version = "2.20.1"
@ -5079,13 +5114,25 @@ dependencies = [
]
[[package]]
name = "xcb"
version = "0.8.2"
name = "x11rb"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e917a3f24142e9ff8be2414e36c649d47d6cc2ba81f16201cdef96e533e02de"
checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
dependencies = [
"libc",
"log",
"gethostname",
"nix 0.24.2",
"winapi",
"winapi-wsapoll",
"x11rb-protocol",
]
[[package]]
name = "x11rb-protocol"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67"
dependencies = [
"nix 0.24.2",
]
[[package]]

View File

@ -17,7 +17,7 @@ log = "0.4"
winit = "0.27.5"
webbrowser = "0.8.2"
url = "2.3.1"
clipboard = "0.5.0"
arboard = "3.2.0"
dirs = "4.0"
isahc = "1.7.2"
rfd = "0.10.0"

View File

@ -1,4 +1,4 @@
use clipboard::{ClipboardContext, ClipboardProvider};
use arboard::Clipboard;
use rfd::{MessageButtons, MessageDialog, MessageLevel};
use ruffle_core::backend::ui::{FullscreenError, MouseCursor, UiBackend};
use std::rc::Rc;
@ -7,7 +7,7 @@ use winit::window::{Fullscreen, Window};
pub struct DesktopUiBackend {
window: Rc<Window>,
cursor_visible: bool,
clipboard: ClipboardContext,
clipboard: Clipboard,
}
impl DesktopUiBackend {
@ -15,7 +15,7 @@ impl DesktopUiBackend {
Self {
window,
cursor_visible: true,
clipboard: ClipboardProvider::new().unwrap(),
clipboard: Clipboard::new().unwrap(),
}
}
}
@ -52,7 +52,7 @@ impl UiBackend for DesktopUiBackend {
}
fn set_clipboard_content(&mut self, content: String) {
self.clipboard.set_contents(content).unwrap();
self.clipboard.set_text(content).unwrap();
}
fn set_fullscreen(&mut self, is_full: bool) -> Result<(), FullscreenError> {