From 1f26a83ed89e04cce614e9e98d38d82cd72297cc Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sat, 18 Nov 2017 11:39:25 -0800 Subject: [PATCH] =?UTF-8?q?Use=20a=20layer=20for=20background=20color=20fo?= =?UTF-8?q?r=20timeline=20table=20cell.=20Don=E2=80=99t=20use=20drawRect:?= =?UTF-8?q?=20for=20performance=20reasons.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Timeline/Cell/TimelineTableCellView.swift | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Evergreen/MainWindow/Timeline/Cell/TimelineTableCellView.swift b/Evergreen/MainWindow/Timeline/Cell/TimelineTableCellView.swift index 384120ee0..0fe1f8e92 100644 --- a/Evergreen/MainWindow/Timeline/Cell/TimelineTableCellView.swift +++ b/Evergreen/MainWindow/Timeline/Cell/TimelineTableCellView.swift @@ -31,6 +31,10 @@ class TimelineTableCellView: NSTableCellView { return true } + override var wantsUpdateLayer: Bool { + return true + } + var isEmphasized = false { didSet { dateView.emphasized = isEmphasized @@ -114,7 +118,7 @@ class TimelineTableCellView: NSTableCellView { feedNameView.rs_setFrameIfNotEqual(layoutRects.feedNameRect) } - override func draw(_ dirtyRect: NSRect) { + override func updateLayer() { let color: NSColor if isSelected { @@ -123,8 +127,10 @@ class TimelineTableCellView: NSTableCellView { else { color = NSColor.white } - color.set() - dirtyRect.fill() + + if layer?.backgroundColor != color.cgColor { + layer?.backgroundColor = color.cgColor + } } private func updateTitleView() {