Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package loupe for openSUSE:Factory checked in at 2023-10-04 22:31:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/loupe (Old) and /work/SRC/openSUSE:Factory/.loupe.new.28202 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "loupe" Wed Oct 4 22:31:05 2023 rev:2 rq:1114861 version:45.0 Changes: -------- --- /work/SRC/openSUSE:Factory/loupe/loupe.changes 2023-09-21 22:19:43.677635593 +0200 +++ /work/SRC/openSUSE:Factory/.loupe.new.28202/loupe.changes 2023-10-04 22:31:50.652492877 +0200 @@ -1,0 +2,10 @@ +Fri Sep 29 20:50:37 UTC 2023 - Bjørn Lie <bjorn....@gmail.com> + +- Add loupe_glycin-loaders_sandbox.patch: Enable the glycin-loaders + sandbox. + https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/299 +- Add loupe_print_fix.patch: print: Use same print operation + throughout. + https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/302 + +------------------------------------------------------------------- New: ---- loupe_glycin-loaders_sandbox.patch loupe_print_fix.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ loupe.spec ++++++ --- /var/tmp/diff_new_pack.wTvcI9/_old 2023-10-04 22:31:52.364554757 +0200 +++ /var/tmp/diff_new_pack.wTvcI9/_new 2023-10-04 22:31:52.364554757 +0200 @@ -26,10 +26,16 @@ Source2: vendor.tar.zst Source3: cargo_config +# PATCH-FIX-UPSTREAM loupe_glycin-loaders_sandbox.patch -- Enable the glycin-loaders sandbox +Patch: loupe_glycin-loaders_sandbox.patch +# PATCH-FIX-UPSTREAM loupe_print_fix.patch -- print: Use same print operation throughout +Patch2: loupe_print_fix.patch + BuildRequires: appstream-glib BuildRequires: cargo-packaging >= 1.2.0+3 BuildRequires: desktop-file-utils -BuildRequires: meson itstool +BuildRequires: itstool +BuildRequires: meson BuildRequires: pkgconfig BuildRequires: pkgconfig(gtk4) >= 4.10 BuildRequires: pkgconfig(gweather4) >= 4.0.0 ++++++ loupe_glycin-loaders_sandbox.patch ++++++ >From afc1e32c7dc0d36166f8cb200fe37ee9fbc39c02 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro <mcatanz...@redhat.com> Date: Tue, 26 Sep 2023 17:07:02 -0500 Subject: [PATCH] Enable the glycin-loaders sandbox We (presumably accidentally) shipped with the sandbox disabled by default, so it's not doing any good. Enable it. Developers who want to disable the sandbox can easily set the build option. --- meson_options.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meson_options.txt b/meson_options.txt index 2a4698c7..70fa9645 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -13,4 +13,5 @@ option( 'disable-glycin-sandbox', type: 'boolean', description: 'Disable sandboxing of image loaders in glycin. Only intended for development purposes.', -) \ No newline at end of file + value: false +) -- GitLab ++++++ loupe_print_fix.patch ++++++ >From 3a11e9c9ce72e36c6124e9dc2f8379df4f004ea9 Mon Sep 17 00:00:00 2001 From: Sophie Herold <sop...@hemio.de> Date: Thu, 28 Sep 2023 12:58:46 +0200 Subject: [PATCH] print: Use same print operation throughout Use a hack to wait in print signal for the layout dialog to be ready instead of creating a new print operation with the same settings. This works around a bug in GTK where the wrong printer gets selected (issue #243), as well as the print dialog getting shown twice when using the print portal (part of #61). --- src/widgets/print.rs | 60 +++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/src/widgets/print.rs b/src/widgets/print.rs index 2ad0efb4..7c8a4657 100644 --- a/src/widgets/print.rs +++ b/src/widgets/print.rs @@ -53,6 +53,14 @@ enum VAlignment { Bottom, } +#[derive(Debug, Clone, Copy, Default)] +enum Status { + #[default] + Prepare, + Print, + Abort, +} + /// Scope guard for non user ui changes /// /// Creates a context in which other signals know that changes are not user input. @@ -250,6 +258,8 @@ mod imp { pub(super) orientation: RefCell<String>, pub(super) ui_updates: UiUpdates, + + pub(super) status: Cell<Status>, } #[glib::object_subclass] @@ -291,6 +301,11 @@ mod imp { obj.set_transient_for(Some(&obj.parent_window())); obj.set_modal(true); + obj.connect_close_request(|obj| { + obj.imp().status.set(Status::Abort); + glib::Propagation::Proceed + }); + self.alignment .connect_selected_notify(glib::clone!(@weak obj => move |_| obj.draw_preview())); @@ -341,7 +356,7 @@ mod imp { }); self.print_operation.connect_draw_page(glib::clone!(@weak obj => - move |operation, _context, _page_nr| { + move |operation, context, _page_nr| { let imp = obj.imp(); let basename = obj @@ -394,8 +409,6 @@ mod imp { } } - imp.print_operation.cancel(); - let orientation = match obj.page_setup().orientation() { gtk::PageOrientation::Portrait => "portrait", gtk::PageOrientation::Landscape => "landscape", @@ -404,6 +417,23 @@ mod imp { obj.set_orientation(orientation); obj.present(); + + loop { + match imp.status.get() { + Status::Prepare => { + glib::MainContext::default().iteration(true); + } + Status::Print => { + log::debug!("Layout dialog confirmed"); + obj.draw_page(context); + break;} + Status::Abort => { + log::debug!("Layout dialog aborted"); + imp.print_operation.cancel(); + break; + } + } + } } )); } @@ -802,8 +832,6 @@ impl LpPrint { fn print(&self) { self.close(); - let print_operation = gtk::PrintOperation::new(); - let print_settings = self.print_operation().print_settings(); if let Some(print_settings) = &print_settings { @@ -812,27 +840,7 @@ impl LpPrint { } } - print_operation.set_print_settings(print_settings.as_ref()); - print_operation.set_default_page_setup(Some(&self.print_operation().default_page_setup())); - - print_operation.connect_begin_print(move |op, _ctx| { - op.set_n_pages(1); - }); - - print_operation.connect_draw_page( - glib::clone!(@weak self as obj => move |_operation, context, _page_nr| { - obj.draw_page(context); - }), - ); - - let res = print_operation.run( - gtk::PrintOperationAction::Print, - Some(&self.parent_window()), - ); - - if let Err(err) = res { - log::warn!("Print error: {err}"); - } + self.imp().status.set(Status::Print); } /// Draw PDF for printing -- GitLab