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", "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]] [[package]]
name = "arrayref" name = "arrayref"
version = "0.3.6" version = "0.3.6"
@ -483,25 +503,14 @@ dependencies = [
"os_str_bytes", "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]] [[package]]
name = "clipboard-win" name = "clipboard-win"
version = "2.2.0" version = "4.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3a093d6fed558e5fe24c3dfc85a68bb68f1c824f440d3ba5aca189e2998786b" checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219"
dependencies = [ dependencies = [
"error-code",
"str-buf",
"winapi", "winapi",
] ]
@ -1345,6 +1354,16 @@ dependencies = [
"libc", "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]] [[package]]
name = "euclid" name = "euclid"
version = "0.22.7" version = "0.22.7"
@ -1720,6 +1739,16 @@ dependencies = [
"version_check", "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]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.8" version = "0.2.8"
@ -3401,9 +3430,9 @@ name = "ruffle_desktop"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"arboard",
"bytemuck", "bytemuck",
"clap", "clap",
"clipboard",
"cpal", "cpal",
"dirs", "dirs",
"embed-resource", "embed-resource",
@ -4055,6 +4084,12 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
[[package]]
name = "str-buf"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
[[package]] [[package]]
name = "strength_reduce" name = "strength_reduce"
version = "0.2.4" version = "0.2.4"
@ -4852,6 +4887,15 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "winapi-wsapoll"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
dependencies = [
"winapi",
]
[[package]] [[package]]
name = "winapi-x86_64-pc-windows-gnu" name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"
@ -5058,15 +5102,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" 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]] [[package]]
name = "x11-dl" name = "x11-dl"
version = "2.20.1" version = "2.20.1"
@ -5079,13 +5114,25 @@ dependencies = [
] ]
[[package]] [[package]]
name = "xcb" name = "x11rb"
version = "0.8.2" version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e917a3f24142e9ff8be2414e36c649d47d6cc2ba81f16201cdef96e533e02de" checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
dependencies = [ dependencies = [
"libc", "gethostname",
"log", "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]] [[package]]

View File

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

View File

@ -1,4 +1,4 @@
use clipboard::{ClipboardContext, ClipboardProvider}; use arboard::Clipboard;
use rfd::{MessageButtons, MessageDialog, MessageLevel}; use rfd::{MessageButtons, MessageDialog, MessageLevel};
use ruffle_core::backend::ui::{FullscreenError, MouseCursor, UiBackend}; use ruffle_core::backend::ui::{FullscreenError, MouseCursor, UiBackend};
use std::rc::Rc; use std::rc::Rc;
@ -7,7 +7,7 @@ use winit::window::{Fullscreen, Window};
pub struct DesktopUiBackend { pub struct DesktopUiBackend {
window: Rc<Window>, window: Rc<Window>,
cursor_visible: bool, cursor_visible: bool,
clipboard: ClipboardContext, clipboard: Clipboard,
} }
impl DesktopUiBackend { impl DesktopUiBackend {
@ -15,7 +15,7 @@ impl DesktopUiBackend {
Self { Self {
window, window,
cursor_visible: true, 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) { 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> { fn set_fullscreen(&mut self, is_full: bool) -> Result<(), FullscreenError> {