mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Maintain scroll position when changing themes
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user