Fix infinite loop that could happen on going to next unread. Fix #269.
This commit is contained in:
parent
97f306b556
commit
24fb1f0356
@ -166,25 +166,41 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
|
|||||||
openArticleInBrowser(sender)
|
openArticleInBrowser(sender)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func makeTimelineViewFirstResponder() {
|
||||||
|
|
||||||
|
guard let window = window, let timelineViewController = timelineViewController else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
window.makeFirstResponderUnlessDescendantIsFirstResponder(timelineViewController.tableView)
|
||||||
|
}
|
||||||
|
|
||||||
@IBAction func nextUnread(_ sender: Any?) {
|
@IBAction func nextUnread(_ sender: Any?) {
|
||||||
|
|
||||||
guard let timelineViewController = timelineViewController, let sidebarViewController = sidebarViewController else {
|
guard let timelineViewController = timelineViewController, let sidebarViewController = sidebarViewController else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeTimelineViewFirstResponder() {
|
if timelineViewController.canGoToNextUnread() {
|
||||||
|
goToNextUnreadInTimeline()
|
||||||
|
}
|
||||||
|
else if sidebarViewController.canGoToNextUnread() {
|
||||||
|
sidebarViewController.goToNextUnread()
|
||||||
|
if timelineViewController.canGoToNextUnread() {
|
||||||
|
goToNextUnreadInTimeline()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
window!.makeFirstResponderUnlessDescendantIsFirstResponder(timelineViewController.tableView)
|
func goToNextUnreadInTimeline() {
|
||||||
|
|
||||||
|
guard let timelineViewController = timelineViewController else {
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if timelineViewController.canGoToNextUnread() {
|
if timelineViewController.canGoToNextUnread() {
|
||||||
timelineViewController.goToNextUnread()
|
timelineViewController.goToNextUnread()
|
||||||
makeTimelineViewFirstResponder()
|
makeTimelineViewFirstResponder()
|
||||||
}
|
}
|
||||||
else if sidebarViewController.canGoToNextUnread() {
|
|
||||||
sidebarViewController.goToNextUnread()
|
|
||||||
makeTimelineViewFirstResponder()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func markAllAsRead(_ sender: Any?) {
|
@IBAction func markAllAsRead(_ sender: Any?) {
|
||||||
|
@ -151,8 +151,6 @@ import RSCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
outlineView.selectRowIndexes(IndexSet([row]), byExtendingSelection: false)
|
outlineView.selectRowIndexes(IndexSet([row]), byExtendingSelection: false)
|
||||||
|
|
||||||
NSApplication.shared.sendAction(NSSelectorFromString("nextUnread:"), to: nil, from: self)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func focus() {
|
func focus() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user