diff --git a/Tusker/AppDelegate.swift b/Tusker/AppDelegate.swift index d6d61ad1..ae70dd80 100644 --- a/Tusker/AppDelegate.swift +++ b/Tusker/AppDelegate.swift @@ -67,7 +67,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } override func buildMenu(with builder: UIMenuBuilder) { - super.buildMenu(with: builder) if builder.system == .main { MenuController.buildMainMenu(builder: builder) @@ -107,4 +106,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate { return "compose" } } + + @objc func closeWindow() { + guard let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) else { + return + } + UIApplication.shared.requestSceneSessionDestruction(scene.session, options: nil) + } } diff --git a/Tusker/Controllers/MenuController.swift b/Tusker/Controllers/MenuController.swift index 0c86608e..46143304 100644 --- a/Tusker/Controllers/MenuController.swift +++ b/Tusker/Controllers/MenuController.swift @@ -52,20 +52,21 @@ struct MenuController { static let prevSubTabCommand = UIKeyCommand(title: "Previous Sub Tab", action: #selector(TabbedPageViewController.selectPrevPage), input: "[", modifierFlags: [.command, .shift]) static func buildMainMenu(builder: UIMenuBuilder) { - builder.insertChild(buildFileMenu(), atStartOfMenu: .file) + builder.replace(menu: .file, with: buildFileMenu()) builder.insertChild(buildSubTabMenu(), atStartOfMenu: .view) builder.insertChild(buildSidebarShortcuts(), atStartOfMenu: .view) } private static func buildFileMenu() -> UIMenu { return UIMenu( - title: "", + title: "File", image: nil, identifier: nil, - options: .displayInline, + options: [], children: [ composeCommand, refreshCommand(discoverabilityTitle: nil), + UIKeyCommand(title: "Close", action: #selector(AppDelegate.closeWindow), input: "w", modifierFlags: .command), ] ) }