From bdaad5cb5f8c722a6d9fb36dfc2de278c386db9a Mon Sep 17 00:00:00 2001 From: Doublonmousse <115779707+Doublonmousse@users.noreply.github.com> Date: Thu, 17 Apr 2025 21:29:16 +0200 Subject: [PATCH 1/3] use `connect_close` for overwriting the close shortcut on import dialogs The previous controller implementation doesn't seem to work anymore (maybe because of the switch to modals + recent changes to event propagation) --- crates/rnote-ui/src/dialogs/import.rs | 42 ++++++++------------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/crates/rnote-ui/src/dialogs/import.rs b/crates/rnote-ui/src/dialogs/import.rs index 366a290fa0..db048373ec 100644 --- a/crates/rnote-ui/src/dialogs/import.rs +++ b/crates/rnote-ui/src/dialogs/import.rs @@ -476,22 +476,13 @@ pub(crate) async fn dialog_import_pdf_w_prefs( })); // Overwrite builtin close shortcut - let controller = ShortcutController::new(); - controller.add_shortcut(Shortcut::new( - Some(ShortcutTrigger::parse_string("Escape").unwrap()), - Some(CallbackAction::new(clone!( - #[weak] - import_pdf_button_cancel, - #[upgrade_or] - glib::Propagation::Stop, - move |_, _| { - import_pdf_button_cancel.emit_clicked(); - - glib::Propagation::Stop - } - ))), + dialog.connect_closed(clone!( + #[weak] + import_pdf_button_cancel, + move |_| { + import_pdf_button_cancel.emit_clicked(); + } )); - dialog.add_controller(controller); // Present than wait for a response from the dialog dialog.present(appwindow.root().as_ref()); @@ -582,22 +573,13 @@ pub(crate) async fn dialog_import_xopp_w_prefs( })); // Overwrite builtin close shortcut - let controller = ShortcutController::new(); - controller.add_shortcut(Shortcut::new( - Some(ShortcutTrigger::parse_string("Escape").unwrap()), - Some(CallbackAction::new(clone!( - #[weak] - import_xopp_button_cancel, - #[upgrade_or] - glib::Propagation::Stop, - move |_, _| { - import_xopp_button_cancel.emit_clicked(); - - glib::Propagation::Stop - } - ))), + dialog.connect_closed(clone!( + #[weak] + import_xopp_button_cancel, + move |_| { + import_xopp_button_cancel.emit_clicked(); + } )); - dialog.add_controller(controller); // Present than wait for a response from the dialog dialog.present(appwindow.root().as_ref()); From 103a6d8e946cfcf54f1bf6b19792f6da1a0d00c9 Mon Sep 17 00:00:00 2001 From: Doublonmousse <115779707+Doublonmousse@users.noreply.github.com> Date: Thu, 17 Apr 2025 21:36:33 +0200 Subject: [PATCH 2/3] remove unused imports --- crates/rnote-ui/src/dialogs/import.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/rnote-ui/src/dialogs/import.rs b/crates/rnote-ui/src/dialogs/import.rs index db048373ec..a40a003be9 100644 --- a/crates/rnote-ui/src/dialogs/import.rs +++ b/crates/rnote-ui/src/dialogs/import.rs @@ -7,8 +7,8 @@ use adw::prelude::*; use futures::StreamExt; use gettextrs::gettext; use gtk4::{ - Builder, Button, CallbackAction, FileDialog, FileFilter, Label, Shortcut, ShortcutController, - ShortcutTrigger, ToggleButton, gio, glib, glib::clone, graphene, gsk, + Builder, Button, FileDialog, FileFilter, Label, ToggleButton, gio, glib, glib::clone, graphene, + gsk, }; use num_traits::ToPrimitive; use rnote_engine::engine::import::{PdfImportPageSpacing, PdfImportPagesType}; From de6918a54ca9f1cd2934b2250fb3e44f4a43dcde Mon Sep 17 00:00:00 2001 From: Doublonmousse <115779707+Doublonmousse@users.noreply.github.com> Date: Fri, 18 Apr 2025 18:16:20 +0200 Subject: [PATCH 3/3] update comments to follow cancellation change --- crates/rnote-ui/src/dialogs/import.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/rnote-ui/src/dialogs/import.rs b/crates/rnote-ui/src/dialogs/import.rs index a40a003be9..f97381b1dd 100644 --- a/crates/rnote-ui/src/dialogs/import.rs +++ b/crates/rnote-ui/src/dialogs/import.rs @@ -475,7 +475,7 @@ pub(crate) async fn dialog_import_pdf_w_prefs( })); })); - // Overwrite builtin close shortcut + // Send a cancel response when the dialog is closed dialog.connect_closed(clone!( #[weak] import_pdf_button_cancel, @@ -572,7 +572,7 @@ pub(crate) async fn dialog_import_xopp_w_prefs( })); })); - // Overwrite builtin close shortcut + // Send a cancel response when the dialog is closed dialog.connect_closed(clone!( #[weak] import_xopp_button_cancel,