mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
macos: allow to hide decorations
This commit is contained in:

committed by
Mitchell Hashimoto

parent
63379ee2eb
commit
ed8b5bc283
@ -309,6 +309,7 @@ typedef struct {
|
|||||||
void *nsview;
|
void *nsview;
|
||||||
double scale_factor;
|
double scale_factor;
|
||||||
uint16_t font_size;
|
uint16_t font_size;
|
||||||
|
bool render_decoration;
|
||||||
} ghostty_surface_config_s;
|
} ghostty_surface_config_s;
|
||||||
|
|
||||||
typedef void (*ghostty_runtime_wakeup_cb)(void *);
|
typedef void (*ghostty_runtime_wakeup_cb)(void *);
|
||||||
@ -364,6 +365,7 @@ bool ghostty_config_get(ghostty_config_t, void *, const char *, uintptr_t);
|
|||||||
ghostty_input_trigger_s ghostty_config_trigger(ghostty_config_t, const char *, uintptr_t);
|
ghostty_input_trigger_s ghostty_config_trigger(ghostty_config_t, const char *, uintptr_t);
|
||||||
uint32_t ghostty_config_errors_count(ghostty_config_t);
|
uint32_t ghostty_config_errors_count(ghostty_config_t);
|
||||||
ghostty_error_s ghostty_config_get_error(ghostty_config_t, uint32_t);
|
ghostty_error_s ghostty_config_get_error(ghostty_config_t, uint32_t);
|
||||||
|
bool ghostty_config_render_decoration(ghostty_config_t);
|
||||||
|
|
||||||
ghostty_app_t ghostty_app_new(const ghostty_runtime_config_s *, ghostty_config_t);
|
ghostty_app_t ghostty_app_new(const ghostty_runtime_config_s *, ghostty_config_t);
|
||||||
void ghostty_app_free(ghostty_app_t);
|
void ghostty_app_free(ghostty_app_t);
|
||||||
|
@ -15,11 +15,20 @@ class FocusedSurfaceWrapper {
|
|||||||
// such as non-native fullscreen.
|
// such as non-native fullscreen.
|
||||||
class PrimaryWindow: NSWindow {
|
class PrimaryWindow: NSWindow {
|
||||||
var focusedSurfaceWrapper: FocusedSurfaceWrapper = FocusedSurfaceWrapper()
|
var focusedSurfaceWrapper: FocusedSurfaceWrapper = FocusedSurfaceWrapper()
|
||||||
|
|
||||||
|
static func getStyleMask(render_decoration: Bool) -> NSWindow.StyleMask {
|
||||||
|
var mask: NSWindow.StyleMask = [.resizable, .closable, .miniaturizable]
|
||||||
|
if render_decoration {
|
||||||
|
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 {
|
||||||
|
let decorations = baseConfig?.render_decoration ?? ghostty_config_render_decoration(ghostty.config)
|
||||||
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: [.titled, .closable, .miniaturizable, .resizable],
|
styleMask: getStyleMask(render_decoration: decorations),
|
||||||
backing: .buffered,
|
backing: .buffered,
|
||||||
defer: false)
|
defer: false)
|
||||||
window.center()
|
window.center()
|
||||||
|
@ -119,6 +119,10 @@ export fn ghostty_config_get_error(self: *Config, idx: u32) Error {
|
|||||||
return .{ .message = err.message.ptr };
|
return .{ .message = err.message.ptr };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export fn ghostty_config_render_decoration(self: *Config) bool {
|
||||||
|
return self.@"window-decoration";
|
||||||
|
}
|
||||||
|
|
||||||
/// Sync with ghostty_error_s
|
/// Sync with ghostty_error_s
|
||||||
const Error = extern struct {
|
const Error = extern struct {
|
||||||
message: [*:0]const u8 = "",
|
message: [*:0]const u8 = "",
|
||||||
|
Reference in New Issue
Block a user