Update to 45.1

This commit is contained in:
Kalev Lember 2023-11-15 01:34:27 +01:00
parent de1405fe75
commit bda37d5a49
5 changed files with 3 additions and 173 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
/loupe-45.beta.1.tar.xz
/loupe-45.0.tar.xz
/loupe-45.1.tar.xz

View File

@ -1,27 +0,0 @@
From afc1e32c7dc0d36166f8cb200fe37ee9fbc39c02 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@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

138
302.patch
View File

@ -1,138 +0,0 @@
From 3a11e9c9ce72e36c6124e9dc2f8379df4f004ea9 Mon Sep 17 00:00:00 2001
From: Sophie Herold <sophie@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

View File

@ -9,7 +9,7 @@
%global tarball_version %%(echo %{version} | tr '~' '.')
Name: loupe
Version: 45.0
Version: 45.1
Release: %autorelease
Summary: Image viewer
@ -31,12 +31,6 @@ License: (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND (0BSD OR MIT OR Apa
URL: https://gitlab.gnome.org/GNOME/loupe
Source0: https://download.gnome.org/sources/loupe/45/loupe-%{tarball_version}.tar.xz
# https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/299
Patch: 299.patch
# https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/302
Patch: 302.patch
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}

View File

@ -1 +1 @@
SHA512 (loupe-45.0.tar.xz) = 45c36c361396366e3c11a08edd38bd25a9b70027378a470c06993fb5b598e47c2afa9f4496e9bf7e8b94a47a720893fb3f5b6fef040f3de46c3d2c37cb9d7928
SHA512 (loupe-45.1.tar.xz) = 13742a5726f300d5d849c3ef86f59b46c4d7a8f11cbc2727729ce8e717b60e20fc6244836f038fe3abd3932a5ec627c47e27a6230587639c86fd130b5e617c44