From efe8a90877a031270375c1f2c0f1823560d85100 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= <debian@jff.email>
Date: Thu, 18 Feb 2021 12:52:46 +0100
Subject: New upstream version 3.38.2

---
 src/preferences-dialog.vala |  2 +-
 src/scanner.vala            | 26 +++++++++++++++++---------
 src/simple-scan.vala        |  2 +-
 3 files changed, 19 insertions(+), 11 deletions(-)

(limited to 'src')

diff --git a/src/preferences-dialog.vala b/src/preferences-dialog.vala
index 06dca75..a0fb9e9 100644
--- a/src/preferences-dialog.vala
+++ b/src/preferences-dialog.vala
@@ -276,7 +276,7 @@ private class PreferencesDialog : Gtk.Dialog
         combo.add_attribute (renderer, "text", 1);
 
         var model = combo.model as Gtk.ListStore;
-        int[] scan_resolutions = {75, 150, 300, 600, 1200, 2400};
+        int[] scan_resolutions = {75, 150, 200, 300, 600, 1200, 2400};
         foreach (var dpi in scan_resolutions)
         {
             string label;
diff --git a/src/scanner.vala b/src/scanner.vala
index becb9fa..237e1eb 100644
--- a/src/scanner.vala
+++ b/src/scanner.vala
@@ -662,10 +662,12 @@ public class Scanner : Object
         switch (option.constraint_type)
         {
         case Sane.ConstraintType.RANGE:
-            if (option.type == Sane.ValueType.FIXED)
-                s += " min=%f, max=%f, quant=%d".printf (Sane.UNFIX (option.range.min), Sane.UNFIX (option.range.max), (int) option.range.quant);
-            else
-                s += " min=%d, max=%d, quant=%d".printf ((int) option.range.min, (int) option.range.max, (int) option.range.quant);
+            if (option.range != null) {
+                if (option.type == Sane.ValueType.FIXED)
+                    s += " min=%f, max=%f, quant=%d".printf (Sane.UNFIX (option.range.min), Sane.UNFIX (option.range.max), (int) option.range.quant);
+                else
+                    s += " min=%d, max=%d, quant=%d".printf ((int) option.range.min, (int) option.range.max, (int) option.range.quant);
+            }
             break;
         case Sane.ConstraintType.WORD_LIST:
             s += " values=[";
@@ -682,11 +684,13 @@ public class Scanner : Object
             break;
         case Sane.ConstraintType.STRING_LIST:
             s += " values=[";
-            for (var i = 0; option.string_list[i] != null; i++)
-            {
-                if (i != 0)
-                    s += ", ";
-                s += "\"%s\"".printf (option.string_list[i]);
+            if (option.string_list != null) {
+                for (var i = 0; option.string_list[i] != null; i++)
+                {
+                    if (i != 0)
+                        s += ", ";
+                        s += "\"%s\"".printf (option.string_list[i]);
+                }
             }
             s += "]";
             break;
@@ -1422,6 +1426,10 @@ public class Scanner : Object
         if (status == Sane.Status.NO_DOCS)
         {
             do_complete_document ();
+            if (page_number == 0)
+                fail_scan (status,
+                    /* Error displayed when no documents at the start of scanning */
+                    _("Document feeder empty"));
             return;
         }
 
diff --git a/src/simple-scan.vala b/src/simple-scan.vala
index 3f495e5..84d8a8c 100644
--- a/src/simple-scan.vala
+++ b/src/simple-scan.vala
@@ -1773,7 +1773,7 @@ public class SimpleScan : Gtk.Application
              * but will not work on KDE, LXDE, XFCE, ... */
             inhibit_cookie = inhibit (app, Gtk.ApplicationInhibitFlags.IDLE, reason);
 
-            if (!is_inhibited (Gtk.ApplicationInhibitFlags.IDLE))
+            if (inhibit_cookie == 0)
             {
                 /* If the previous method didn't work, try the one
                  * provided by Freedesktop. It should work with KDE,
-- 
cgit v1.2.3