diff --git a/_constraints b/_constraints
index 63bed34..0be0f88 100644
--- a/_constraints
+++ b/_constraints
@@ -9,3 +9,4 @@
+
diff --git a/_service b/_service
index b1634c1..2db5ca9 100644
--- a/_service
+++ b/_service
@@ -3,7 +3,7 @@
https://gitlab.gnome.org/GNOME/loupe.git
git
- refs/tags/45.0
+ refs/tags/45.1
@PARENT_TAG@+@TAG_OFFSET@
(.*)\+0
\1
@@ -17,6 +17,7 @@
loupe
+ zst
true
diff --git a/cargo_config b/cargo_config
index 6fb4ff4..97852b5 100644
--- a/cargo_config
+++ b/cargo_config
@@ -2,4 +2,4 @@
replace-with = "vendored-sources"
[source.vendored-sources]
-directory = "vendor"
\ No newline at end of file
+directory = "vendor"
diff --git a/loupe-45.0.obscpio b/loupe-45.0.obscpio
deleted file mode 100644
index b5e8612..0000000
--- a/loupe-45.0.obscpio
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5eb70678aea08c32e88d00d45334b1ea8fd28bbe31080e34a5a9edd0b195df6b
-size 1452044
diff --git a/loupe-45.1.obscpio b/loupe-45.1.obscpio
new file mode 100644
index 0000000..ec51c71
--- /dev/null
+++ b/loupe-45.1.obscpio
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e0cbb9095620d5a265cf140b5eb6df2f85eabe18853f1c7e876d43f72dd6853e
+size 1522188
diff --git a/loupe.changes b/loupe.changes
index 6aa4ba0..4f63da8 100644
--- a/loupe.changes
+++ b/loupe.changes
@@ -1,3 +1,19 @@
+-------------------------------------------------------------------
+Tue Nov 14 20:16:47 UTC 2023 - Bjørn Lie
+
+- Update to version 45.1:
+ + Fix sandbox for image decoding not enabled by default
+ + Fix printing on different printer than selected
+ + Fix print dialog crashes on confirmation
+ + Fix print dialog needs second confirmation inside Flatpaks
+ + Fix SVGs sometimes not re-rendering for zoom level
+ + Fix animated image formats with variable frame length using
+ only one length
+ + Fix rotation getting applied twice to HEIF images
+- Drop patches fixed upstream:
+ + loupe_glycin-loaders_sandbox.patch
+ + loupe_print_fix.patch
+
-------------------------------------------------------------------
Tue Nov 7 09:08:27 UTC 2023 - Dominique Leuenberger
diff --git a/loupe.obsinfo b/loupe.obsinfo
index 0f2914c..b1db515 100644
--- a/loupe.obsinfo
+++ b/loupe.obsinfo
@@ -1,4 +1,4 @@
name: loupe
-version: 45.0
-mtime: 1694956400
-commit: ebe9141f52dbcd39eef67e185273ea4438f6e889
+version: 45.1
+mtime: 1699989855
+commit: 23153056aeb6b0afbacec2e6fb2c6022d7a6e9d2
diff --git a/loupe.spec b/loupe.spec
index 260dcd5..ff4c775 100644
--- a/loupe.spec
+++ b/loupe.spec
@@ -17,7 +17,7 @@
Name: loupe
-Version: 45.0
+Version: 45.1
Release: 0
Summary: A simple image viewer application
License: GPL-3.0-or-later
@@ -26,11 +26,6 @@ Source: %{name}-%{version}.tar.zst
Source2: vendor.tar.zst
Source3: cargo_config
-# PATCH-FIX-UPSTREAM loupe_glycin-loaders_sandbox.patch -- Enable the glycin-loaders sandbox
-Patch0: 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
diff --git a/loupe_glycin-loaders_sandbox.patch b/loupe_glycin-loaders_sandbox.patch
deleted file mode 100644
index bd0b5c3..0000000
--- a/loupe_glycin-loaders_sandbox.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From afc1e32c7dc0d36166f8cb200fe37ee9fbc39c02 Mon Sep 17 00:00:00 2001
-From: Michael Catanzaro
-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
-
diff --git a/loupe_print_fix.patch b/loupe_print_fix.patch
deleted file mode 100644
index 0d3c6f1..0000000
--- a/loupe_print_fix.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 3a11e9c9ce72e36c6124e9dc2f8379df4f004ea9 Mon Sep 17 00:00:00 2001
-From: Sophie Herold
-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,
-
- pub(super) ui_updates: UiUpdates,
-+
-+ pub(super) status: Cell,
- }
-
- #[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
-
diff --git a/vendor.tar.zst b/vendor.tar.zst
index f0a402d..b8a4899 100644
--- a/vendor.tar.zst
+++ b/vendor.tar.zst
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d7964e6fa4e04bd0a4d5524f077a65f2bb6ccb92fa1b60c530349fa59f975389
-size 24950907
+oid sha256:f21e38ccb216787b8a1047f72fa8d9c663da485138ac38eb4e7ef76135d2e884
+size 24995610