macos: have macos-dock-drop-behavior apply to all drops

This commit is contained in:
Mitchell Hashimoto
2025-08-21 10:45:12 -07:00
parent f9ad061ea8
commit e01ff4093a
5 changed files with 26 additions and 29 deletions

View File

@@ -405,14 +405,6 @@ class AppDelegate: NSObject,
// When opening a directory, check the configuration to decide
// whether to open in a new tab or new window.
config.workingDirectory = filename
let behavior = ghostty.config.macosDockDropFolderBehavior
if behavior == .window {
_ = TerminalController.newWindow(ghostty, withBaseConfig: config)
} else {
// Default to tab behavior
_ = TerminalController.newTab(ghostty, withBaseConfig: config)
}
} else {
// When opening a file, we want to execute the file. To do this, we
// don't override the command directly, because it won't load the
@@ -424,8 +416,11 @@ class AppDelegate: NSObject,
// Set the parent directory to our working directory so that relative
// paths in scripts work.
config.workingDirectory = (filename as NSString).deletingLastPathComponent
_ = TerminalController.newWindow(ghostty, withBaseConfig: config)
}
switch ghostty.config.macosDockDropBehavior {
case .new_tab: _ = TerminalController.newTab(ghostty, withBaseConfig: config)
case .new_window: _ = TerminalController.newWindow(ghostty, withBaseConfig: config)
}
return true

View File

@@ -282,15 +282,15 @@ extension Ghostty {
return MacOSTitlebarProxyIcon(rawValue: str) ?? defaultValue
}
var macosDockDropFolderBehavior: MacOSDockDropFolderBehavior {
let defaultValue = MacOSDockDropFolderBehavior.tab
var macosDockDropBehavior: MacDockDropBehavior {
let defaultValue = MacDockDropBehavior.new_tab
guard let config = self.config else { return defaultValue }
var v: UnsafePointer<Int8>? = nil
let key = "macos-dock-drop-folder-behavior"
let key = "macos-dock-drop-behavior"
guard ghostty_config_get(config, &v, key, UInt(key.count)) else { return defaultValue }
guard let ptr = v else { return defaultValue }
let str = String(cString: ptr)
return MacOSDockDropFolderBehavior(rawValue: str) ?? defaultValue
return MacDockDropBehavior(rawValue: str) ?? defaultValue
}
var macosWindowShadow: Bool {
@@ -618,6 +618,11 @@ extension Ghostty.Config {
static let attention = BellFeatures(rawValue: 1 << 2)
static let title = BellFeatures(rawValue: 1 << 3)
}
enum MacDockDropBehavior: String {
case new_tab = "new-tab"
case new_window = "new-window"
}
enum MacHidden : String {
case never

View File

@@ -304,12 +304,6 @@ extension Ghostty {
case hidden
}
/// Enum for the macos-dock-drop-folder-behavior config option
enum MacOSDockDropFolderBehavior: String {
case tab
case window
}
/// Enum for auto-update-channel config option
enum AutoUpdateChannel: String {
case tip