From e0f872a8c78c0148e98a8b1003aef0280a7ad818 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sat, 21 Oct 2017 12:13:20 -0700 Subject: [PATCH] Differentiate between navigation keys and other keys-that-are-handled in keyDown. --- .../MainWindow/Sidebar/SidebarOutlineView.swift | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Evergreen/MainWindow/Sidebar/SidebarOutlineView.swift b/Evergreen/MainWindow/Sidebar/SidebarOutlineView.swift index 78334aa1e..e8e2dbf2f 100644 --- a/Evergreen/MainWindow/Sidebar/SidebarOutlineView.swift +++ b/Evergreen/MainWindow/Sidebar/SidebarOutlineView.swift @@ -10,7 +10,9 @@ import AppKit import RSCore class SidebarOutlineView : NSOutlineView { - + + weak var sidebarViewController: SidebarViewController? + //MARK: NSResponder override func keyDown(with event: NSEvent) { @@ -26,27 +28,31 @@ class SidebarOutlineView : NSOutlineView { return } + var isNavigationKey = false var keyHandled = false - + switch(ch) { case NSRightArrowFunctionKey: + isNavigationKey = true keyHandled = true case NSDeleteFunctionKey, Int(kDeleteKeyCode): keyHandled = true - Swift.print("NSDeleteFunctionKey") + sidebarViewController?.delete(event) default: keyHandled = false } - if keyHandled { + if isNavigationKey { let appInfo = AppInfo() appInfo.navigationKey = ch NotificationCenter.default.post(name: .AppNavigationKeyPressed, object: self, userInfo: appInfo.userInfo) + return } - else { + + if !keyHandled { super.keyDown(with: event) } }