macos: stylistic changes

This commit is contained in:
Mitchell Hashimoto
2023-09-13 22:08:32 -07:00
parent 48de8c0837
commit 2b380ad37e
3 changed files with 84 additions and 79 deletions

View File

@ -16,22 +16,10 @@ class FocusedSurfaceWrapper {
class PrimaryWindow: NSWindow { class PrimaryWindow: NSWindow {
var focusedSurfaceWrapper: FocusedSurfaceWrapper = FocusedSurfaceWrapper() var focusedSurfaceWrapper: FocusedSurfaceWrapper = FocusedSurfaceWrapper()
static func getStyleMask(renderDecoration: Bool) -> NSWindow.StyleMask {
var mask: NSWindow.StyleMask = [.resizable, .closable, .miniaturizable]
if renderDecoration {
mask.insert(.titled)
}
return mask
}
static func create(ghostty: Ghostty.AppState, appDelegate: AppDelegate, baseConfig: ghostty_surface_config_s? = nil) -> PrimaryWindow { static func create(ghostty: Ghostty.AppState, appDelegate: AppDelegate, baseConfig: ghostty_surface_config_s? = nil) -> PrimaryWindow {
var renderDecoration = false;
let configString = "window-decoration"
_ = ghostty_config_get(ghostty.config, &renderDecoration, configString, UInt(configString.count))
let window = PrimaryWindow( let window = PrimaryWindow(
contentRect: NSRect(x: 0, y: 0, width: 800, height: 600), contentRect: NSRect(x: 0, y: 0, width: 800, height: 600),
styleMask: getStyleMask(renderDecoration: renderDecoration), styleMask: getStyleMask(renderDecoration: ghostty.windowDecorations),
backing: .buffered, backing: .buffered,
defer: false) defer: false)
window.center() window.center()
@ -57,6 +45,15 @@ class PrimaryWindow: NSWindow {
return window return window
} }
static func getStyleMask(renderDecoration: Bool) -> NSWindow.StyleMask {
var mask: NSWindow.StyleMask = [.resizable, .closable, .miniaturizable]
if renderDecoration {
mask.insert(.titled)
}
return mask
}
override var canBecomeKey: Bool { override var canBecomeKey: Bool {
return true return true
} }

View File

@ -63,6 +63,15 @@ extension Ghostty {
return Info(mode: raw.build_mode, version: String(version)) return Info(mode: raw.build_mode, version: String(version))
} }
/// True if we want to render window decorations
var windowDecorations: Bool {
guard let config = self.config else { return true }
var v = false;
let key = "window-decoration"
_ = ghostty_config_get(config, &v, key, UInt(key.count))
return v;
}
/// Cached clipboard string for `read_clipboard` callback. /// Cached clipboard string for `read_clipboard` callback.
private var cached_clipboard_string: String? = nil private var cached_clipboard_string: String? = nil

View File

@ -1,17 +1,16 @@
import SwiftUI import SwiftUI
import GhosttyKit import GhosttyKit
class FullScreenHandler { class FullScreenHandler { var previousTabGroup: NSWindowTabGroup?
var previousTabGroup: NSWindowTabGroup?
var previousTabGroupIndex: Int? var previousTabGroupIndex: Int?
var previousContentFrame: NSRect? var previousContentFrame: NSRect?
var isInFullscreen: Bool = false
var previousStyleMask: NSWindow.StyleMask? = nil var previousStyleMask: NSWindow.StyleMask? = nil
// We keep track of whether we entered non-native fullscreen in case // We keep track of whether we entered non-native fullscreen in case
// a user goes to fullscreen, changes the config to disable non-native fullscreen // a user goes to fullscreen, changes the config to disable non-native fullscreen
// and then wants to toggle it off // and then wants to toggle it off
var isInNonNativeFullscreen: Bool = false var isInNonNativeFullscreen: Bool = false
var isInFullscreen: Bool = false
func toggleFullscreen(window: NSWindow, nonNativeFullscreen: ghostty_non_native_fullscreen_e) { func toggleFullscreen(window: NSWindow, nonNativeFullscreen: ghostty_non_native_fullscreen_e) {
let useNonNativeFullscreen = nonNativeFullscreen != GHOSTTY_NON_NATIVE_FULLSCREEN_FALSE let useNonNativeFullscreen = nonNativeFullscreen != GHOSTTY_NON_NATIVE_FULLSCREEN_FALSE