Preserve SSD viewport while restoring last page

ober

63b8765b66e5b406fbc96e21fc57f8727ef68cc3

diff --git a/templates/ssd-review.ss b/templates/ssd-review.ss
index 6596bd4..6bdf90c 100644
--- a/templates/ssd-review.ss
+++ b/templates/ssd-review.ss
@@ -1644,7 +1644,7 @@
        "        }"
        "    }"
        ""
-       "    private fun loadPdf(uri: Uri, flags: Int, initialPageIndex: Int = 0) {"
+       "    private fun loadPdf(uri: Uri, flags: Int, initialPageIndex: Int = 0, restoring: Boolean = false) {"
        "        try {"
        "            contentResolver.takePersistableUriPermission(uri, flags and Intent.FLAG_GRANT_READ_URI_PERMISSION)"
        "        } catch (_: Exception) {"
@@ -1664,7 +1664,7 @@
        "                    pdfSha1 = hash"
        "                    pageCount = count"
        "                    pageIndex = initialPageIndex.coerceIn(0, maxOf(0, count - 1))"
-       "                    persistCurrentPdfState(includeViewport = false)"
+       "                    if (!restoring) persistCurrentPdfState(includeViewport = false)"
        "                    setStatus(\"Loaded $pdfName ($pageCount pages)\")"
        "                    renderCurrentPage()"
        "                }"
@@ -1679,7 +1679,7 @@
        "        val raw = prefs.getString(PREF_LAST_PDF_URI, null) ?: return false"
        "        val page = prefs.getInt(PREF_LAST_PAGE_INDEX, 0)"
        "        return try {"
-       "            loadPdf(Uri.parse(raw), Intent.FLAG_GRANT_READ_URI_PERMISSION, page)"
+       "            loadPdf(Uri.parse(raw), Intent.FLAG_GRANT_READ_URI_PERMISSION, page, restoring = true)"
        "            true"
        "        } catch (_: Exception) {"
        "            false"