From 6fa019702d2c2772af0ac7d9c456045b7447516a Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Sun, 3 Mar 2019 15:51:52 -0600 Subject: [PATCH] Made sure an item in the timeline is selected when getting focus - Issue #558 --- .../MainWindow/Timeline/TimelineTableView.swift | 10 ++++++++++ .../MainWindow/Timeline/TimelineViewController.swift | 7 ++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/NetNewsWire/MainWindow/Timeline/TimelineTableView.swift b/NetNewsWire/MainWindow/Timeline/TimelineTableView.swift index bc2f4451f..0c40c74ea 100644 --- a/NetNewsWire/MainWindow/Timeline/TimelineTableView.swift +++ b/NetNewsWire/MainWindow/Timeline/TimelineTableView.swift @@ -20,6 +20,16 @@ class TimelineTableView: NSTableView { } super.keyDown(with: event) } + + override func becomeFirstResponder() -> Bool { + if super.becomeFirstResponder() { + if selectedRow == -1 && numberOfRows > 0 { + rs_selectRowAndScrollToVisible(0) + } + return true + } + return false + } // MARK: - NSView diff --git a/NetNewsWire/MainWindow/Timeline/TimelineViewController.swift b/NetNewsWire/MainWindow/Timeline/TimelineViewController.swift index 18cff4ef2..f84cb6358 100644 --- a/NetNewsWire/MainWindow/Timeline/TimelineViewController.swift +++ b/NetNewsWire/MainWindow/Timeline/TimelineViewController.swift @@ -369,15 +369,12 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner { } func focus() { - + guard let window = tableView.window else { return } - + window.makeFirstResponderUnlessDescendantIsFirstResponder(tableView) - if !hasAtLeastOneSelectedArticle && articles.count > 0 { - tableView.rs_selectRowAndScrollToVisible(0) - } } // MARK: - Notifications