diff --git a/Mac/Base.lproj/Preferences.storyboard b/Mac/Base.lproj/Preferences.storyboard
index f3a7b1b69..94bba47aa 100644
--- a/Mac/Base.lproj/Preferences.storyboard
+++ b/Mac/Base.lproj/Preferences.storyboard
@@ -487,16 +487,16 @@
-
+
-
+
-
+
-
+
@@ -603,7 +603,7 @@
-
+
@@ -658,16 +658,16 @@
-
+
-
+
-
+
-
+
@@ -770,7 +770,7 @@
-
+
diff --git a/Mac/MainWindow/Detail/DetailWebViewController.swift b/Mac/MainWindow/Detail/DetailWebViewController.swift
index a26b7e3fe..08d559032 100644
--- a/Mac/MainWindow/Detail/DetailWebViewController.swift
+++ b/Mac/MainWindow/Detail/DetailWebViewController.swift
@@ -55,6 +55,7 @@ final class DetailWebViewController: NSViewController {
private let detailIconSchemeHandler = DetailIconSchemeHandler()
private var waitingForFirstReload = false
+ private var windowScrollY: CGFloat?
private let keyboardDelegate = DetailKeyboardDelegate()
private struct MessageName {
@@ -143,7 +144,10 @@ final class DetailWebViewController: NSViewController {
}
@objc func currentArticleThemeDidChangeNotification(_ note: Notification) {
- reloadHTML()
+ fetchScrollInfo() { scrollInfo in
+ self.windowScrollY = scrollInfo?.offsetY
+ self.reloadHTML()
+ }
}
// MARK: Media Functions
@@ -226,6 +230,11 @@ extension DetailWebViewController: WKNavigationDelegate, WKUIDelegate {
webView.isHidden = false
}
}
+
+ if let windowScrollY = windowScrollY {
+ webView.evaluateJavaScript("window.scrollTo(0, \(windowScrollY));")
+ self.windowScrollY = nil
+ }
}
// WKUIDelegate