From 6f5e13f8fe9be6bcb1262ff25c2601534bdc3a6d Mon Sep 17 00:00:00 2001 From: Benjamin Jacobs Date: Thu, 20 Jul 2023 19:29:59 +0200 Subject: Fallback to the nop clipboard provider. --- src/bin/rbw-agent/actions.rs | 1 - src/bin/rbw-agent/agent.rs | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/bin/rbw-agent/actions.rs b/src/bin/rbw-agent/actions.rs index 4c7f6fb..58432b1 100644 --- a/src/bin/rbw-agent/actions.rs +++ b/src/bin/rbw-agent/actions.rs @@ -1,5 +1,4 @@ use anyhow::Context as _; -use copypasta::ClipboardProvider as _; pub async fn register( sock: &mut crate::sock::Sock, diff --git a/src/bin/rbw-agent/agent.rs b/src/bin/rbw-agent/agent.rs index 5769c0e..54585a1 100644 --- a/src/bin/rbw-agent/agent.rs +++ b/src/bin/rbw-agent/agent.rs @@ -12,7 +12,7 @@ pub struct State { pub sync_timeout: crate::timeout::Timeout, pub sync_timeout_duration: std::time::Duration, pub notifications_handler: crate::notifications::Handler, - pub clipboard: copypasta::ClipboardContext, + pub clipboard: Box, } impl State { @@ -60,9 +60,20 @@ impl Agent { sync_timeout.set(sync_timeout_duration); } let notifications_handler = crate::notifications::Handler::new(); - let clipboard = copypasta::ClipboardContext::new().map_err(|e| { - anyhow::anyhow!("couldn't create clipboard context: {e}") - })?; + let clipboard: Box = + copypasta::ClipboardContext::new() + .map(|v| { + Box::new(v) + as Box + }) + .unwrap_or_else(|e| { + log::warn!("couldn't create clipboard context: {e}"); + Box::new( + // infailible + copypasta::nop_clipboard::NopClipboardContext::new() + .unwrap(), + ) + }); Ok(Self { timer_r, sync_timer_r, -- cgit v1.2.3-54-g00ecf