Merge pull request #923 from vancluever/vancluever-config-gtk-titlebar

apprt/gtk: let GTK titlebar be toggleable
This commit is contained in:
Mitchell Hashimoto
2023-11-20 20:29:47 -08:00
committed by GitHub
2 changed files with 26 additions and 14 deletions

View File

@ -79,6 +79,9 @@ pub fn init(self: *Window, app: *App) !void {
// Use the new GTK4 header bar. We only create a header bar if we have // Use the new GTK4 header bar. We only create a header bar if we have
// window decorations. // window decorations.
if (app.config.@"window-decoration") { if (app.config.@"window-decoration") {
// gtk-titlebar can also be used to disable the header bar (but keep
// the window manager's decorations).
if (app.config.@"gtk-titlebar") {
const header = c.gtk_header_bar_new(); const header = c.gtk_header_bar_new();
c.gtk_window_set_titlebar(gtk_window, header); c.gtk_window_set_titlebar(gtk_window, header);
{ {
@ -94,6 +97,7 @@ pub fn init(self: *Window, app: *App) !void {
c.gtk_header_bar_pack_end(@ptrCast(header), btn); c.gtk_header_bar_pack_end(@ptrCast(header), btn);
_ = c.g_signal_connect_data(btn, "clicked", c.G_CALLBACK(&gtkTabNewClick), self, null, c.G_CONNECT_DEFAULT); _ = c.g_signal_connect_data(btn, "clicked", c.G_CALLBACK(&gtkTabNewClick), self, null, c.G_CONNECT_DEFAULT);
} }
}
} else { } else {
// Hide window decoration if configured. This has to happen before // Hide window decoration if configured. This has to happen before
// `gtk_widget_show`. // `gtk_widget_show`.

View File

@ -472,6 +472,14 @@ keybind: Keybinds = .{},
/// Currently only supported on macOS. /// Currently only supported on macOS.
@"window-step-resize": bool = false, @"window-step-resize": bool = false,
/// When enabled, the full GTK titlebar is displayed instead of your window
/// manager's simple titlebar. The behavior of this option will vary with your
/// window manager.
///
/// This option does nothing when window-decoration is false or when running
/// under MacOS.
@"gtk-titlebar": bool = true,
/// Whether to allow programs running in the terminal to read/write to /// Whether to allow programs running in the terminal to read/write to
/// the system clipboard (OSC 52, for googling). The default is to /// the system clipboard (OSC 52, for googling). The default is to
/// allow clipboard reading after prompting the user and allow writing /// allow clipboard reading after prompting the user and allow writing