From 142c571c797c66dbd6f7975f0284f6aaed774d36 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Wed, 21 May 2025 12:49:14 +0200 Subject: [PATCH 1/2] Adding FnMut for grab (seems to work on Linux after all). --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 0cfdd7d..6c7280f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -359,7 +359,7 @@ pub use crate::windows::grab as _grab; /// ``` pub fn grab(callback: T) -> Result<(), GrabError> where - T: Fn(Event) -> Option + 'static, + T: FnMut(Event) -> Option + 'static, { _grab(callback) } From 20efb1999a4566862fb31a98cf5e80538864a76d Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Wed, 21 May 2025 12:54:12 +0200 Subject: [PATCH 2/2] Grab FnMut on linux --- src/linux/x11/grab.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/linux/x11/grab.rs b/src/linux/x11/grab.rs index 0f24105..728d589 100644 --- a/src/linux/x11/grab.rs +++ b/src/linux/x11/grab.rs @@ -301,9 +301,9 @@ fn evdev_event_to_rdev_event( // } // } -pub fn grab(callback: T) -> Result<(), GrabError> +pub fn grab(mut callback: T) -> Result<(), GrabError> where - T: Fn(Event) -> Option + 'static, + T: FnMut(Event) -> Option + 'static, { let mut kb = Keyboard::new().ok_or(GrabError::KeyboardError)?; let display = Display::new().ok_or(GrabError::MissingDisplayError)?;