From fd314f11cee8f94c9fa33266aa769789c0d47a0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Mon, 24 Nov 2025 15:50:58 +0100 Subject: [PATCH] alert-dialog: Allow for None parent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes it match the C API Closes: https://gitlab.gnome.org/World/Rust/libadwaita-rs/-/issues/38 Signed-off-by: Guido Günther --- libadwaita/src/alert_dialog.rs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/libadwaita/src/alert_dialog.rs b/libadwaita/src/alert_dialog.rs index 45923b2..8f68986 100644 --- a/libadwaita/src/alert_dialog.rs +++ b/libadwaita/src/alert_dialog.rs @@ -36,7 +36,7 @@ pub trait AlertDialogExtManual: sealed::Sealed + IsA + 'static { #[doc(alias = "adw_alert_dialog_choose")] fn choose( self, - parent: &impl IsA, + parent: Option<&impl IsA>, cancellable: Option<&impl IsA>, callback: P, ) { @@ -72,7 +72,7 @@ pub trait AlertDialogExtManual: sealed::Sealed + IsA + 'static { unsafe { ffi::adw_alert_dialog_choose( self.upcast().into_glib_ptr(), - parent.as_ref().to_glib_none().0, + parent.map(|p| p.as_ref()).to_glib_none().0, cancellable.map(|p| p.as_ref()).to_glib_none().0, Some(callback), Box_::into_raw(user_data) as *mut _, @@ -82,15 +82,19 @@ pub trait AlertDialogExtManual: sealed::Sealed + IsA + 'static { fn choose_future( self, - parent: &impl IsA, + parent: Option<&impl IsA>, ) -> Pin + 'static>> { - let parent = parent.clone(); + let parent = parent.map(ToOwned::to_owned); Box_::pin(gio::GioFuture::new( &self, move |obj: &Self, cancellable, send| { - obj.clone().choose(&parent, Some(cancellable), move |res| { - send.resolve(res); - }); + obj.clone().choose( + parent.as_ref().map(::std::borrow::Borrow::borrow), + Some(cancellable), + move |res| { + send.resolve(res); + }, + ); }, )) } -- GitLab