From bef77bc4a12c92f54e842271ccd5ed16be16b473 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sun, 3 Dec 2017 12:45:34 -0800 Subject: [PATCH] =?UTF-8?q?Create=20and=20use=20a=20plain-background=20NoS?= =?UTF-8?q?electionView=20to=20display=20in=20the=20detail=20pane=20when?= =?UTF-8?q?=20there=E2=80=99s=20no=20current=20article.=20Fix=20#237.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Detail/DetailViewController.swift | 34 +++++++++++++++---- Evergreen/Resources/DB5.plist | 8 +++++ 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/Evergreen/MainWindow/Detail/DetailViewController.swift b/Evergreen/MainWindow/Detail/DetailViewController.swift index bf5a3fdf3..1d17a76f9 100644 --- a/Evergreen/MainWindow/Detail/DetailViewController.swift +++ b/Evergreen/MainWindow/Detail/DetailViewController.swift @@ -12,10 +12,10 @@ import RSCore import Data import RSWeb -class DetailViewController: NSViewController, WKNavigationDelegate, WKUIDelegate { +final class DetailViewController: NSViewController, WKNavigationDelegate, WKUIDelegate { var webview: WKWebView! - var visualEffectView: NSVisualEffectView! + var noSelectionView: NoSelectionView! var article: Article? { didSet { @@ -56,9 +56,7 @@ class DetailViewController: NSViewController, WKNavigationDelegate, WKUIDelegate webview.customUserAgent = userAgent } - visualEffectView = NSVisualEffectView(frame: self.view.bounds) - visualEffectView.material = .appearanceBased - visualEffectView.blendingMode = .behindWindow + noSelectionView = NoSelectionView(frame: self.view.bounds) let boxView = self.view as! DetailBox boxView.viewController = self @@ -105,7 +103,7 @@ class DetailViewController: NSViewController, WKNavigationDelegate, WKUIDelegate switchToView(webview) } else { - switchToView(visualEffectView) + switchToView(noSelectionView) } } @@ -172,7 +170,7 @@ extension DetailViewController: WKScriptMessageHandler { } } -class DetailBox: NSBox { +final class DetailBox: NSBox { weak var viewController: DetailViewController? @@ -186,3 +184,25 @@ class DetailBox: NSBox { viewController?.viewDidEndLiveResize() } } + +final class NoSelectionView: NSView { + + private var didConfigureLayer = false + + override var wantsUpdateLayer: Bool { + return true + } + + override func updateLayer() { + + guard !didConfigureLayer else { + return + } + if let layer = layer { + let color = appDelegate.currentTheme.color(forKey: "MainWindow.Detail.noSelectionView.backgroundColor") + layer.backgroundColor = color.cgColor + didConfigureLayer = true + } + } +} + diff --git a/Evergreen/Resources/DB5.plist b/Evergreen/Resources/DB5.plist index 96d945d44..ba840b555 100644 --- a/Evergreen/Resources/DB5.plist +++ b/Evergreen/Resources/DB5.plist @@ -108,6 +108,14 @@ 4 + Detail + + noSelectionView + + backgroundColor + FFFFFF + +