Use a layer for background color for timeline table cell. Don’t use drawRect: for performance reasons.
This commit is contained in:
parent
8ccceb6fa2
commit
1f26a83ed8
@ -31,6 +31,10 @@ class TimelineTableCellView: NSTableCellView {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var wantsUpdateLayer: Bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
var isEmphasized = false {
|
var isEmphasized = false {
|
||||||
didSet {
|
didSet {
|
||||||
dateView.emphasized = isEmphasized
|
dateView.emphasized = isEmphasized
|
||||||
@ -114,7 +118,7 @@ class TimelineTableCellView: NSTableCellView {
|
|||||||
feedNameView.rs_setFrameIfNotEqual(layoutRects.feedNameRect)
|
feedNameView.rs_setFrameIfNotEqual(layoutRects.feedNameRect)
|
||||||
}
|
}
|
||||||
|
|
||||||
override func draw(_ dirtyRect: NSRect) {
|
override func updateLayer() {
|
||||||
|
|
||||||
let color: NSColor
|
let color: NSColor
|
||||||
if isSelected {
|
if isSelected {
|
||||||
@ -123,8 +127,10 @@ class TimelineTableCellView: NSTableCellView {
|
|||||||
else {
|
else {
|
||||||
color = NSColor.white
|
color = NSColor.white
|
||||||
}
|
}
|
||||||
color.set()
|
|
||||||
dirtyRect.fill()
|
if layer?.backgroundColor != color.cgColor {
|
||||||
|
layer?.backgroundColor = color.cgColor
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func updateTitleView() {
|
private func updateTitleView() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user