Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,31 @@ extension EditorViewController {
}
}

// MARK: - Window & Tabbing

extension EditorViewController {
@IBAction func toggleWindowFloating(_ sender: Any?) {
view.window?.level = view.window?.level == .floating ? .normal : .floating
}

@IBAction func createNewTab(_ sender: Any?) {
let window = view.window
let tabbingMode = window?.tabbingMode

// Force tabbing without mutating the persisted preference
EditorWindow.forcedTabbing = true
window?.tabbingMode = .preferred
NSDocumentController.shared.newDocument(sender)

DispatchQueue.main.async {
EditorWindow.forcedTabbing = false
if let tabbingMode {
window?.tabbingMode = tabbingMode
}
}
}
}

// MARK: - Developer

extension EditorViewController {
Expand Down Expand Up @@ -310,23 +335,6 @@ private extension EditorViewController {
view.window?.performClose(sender)
}

@IBAction func createNewTab(_ sender: Any?) {
let window = view.window
let tabbingMode = window?.tabbingMode

// Force tabbing without mutating the persisted preference
EditorWindow.forcedTabbing = true
window?.tabbingMode = .preferred
NSDocumentController.shared.newDocument(sender)

DispatchQueue.main.async {
EditorWindow.forcedTabbing = false
if let tabbingMode {
window?.tabbingMode = tabbingMode
}
}
}

@IBAction func revealInFinder(_ sender: Any?) {
guard let fileURL = document?.fileURL else { return }
NSWorkspace.shared.activateFileViewerSelecting([fileURL])
Expand Down Expand Up @@ -501,14 +509,6 @@ private extension EditorViewController {
}
}

// MARK: - Window

private extension EditorViewController {
@IBAction func toggleWindowFloating(_ sender: Any?) {
view.window?.level = view.window?.level == .floating ? .normal : .floating
}
}

// MARK: - Private

private extension EditorViewController {
Expand Down
9 changes: 9 additions & 0 deletions MarkEditMac/Sources/Editor/EditorWindowController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
//

import AppKit
import MarkEditKit

final class EditorWindowController: NSWindowController, NSWindowDelegate {
var autosavedFrame: CGRect?
Expand Down Expand Up @@ -52,6 +53,14 @@ final class EditorWindowController: NSWindowController, NSWindowDelegate {
showWindowImmediately(sender)
}

override func newWindowForTab(_ sender: Any?) {
guard let editorViewController else {
return Logger.assertFail("Missing editorViewController")
}

editorViewController.createNewTab(sender)
}

func windowDidBecomeMain(_ notification: Notification) {
NSApplication.shared.closeOpenPanels()
}
Expand Down