Skip to content

Commit dd15670

Browse files
committed
feat: keep GTK_CSD env var as opt-in for GNOME header bar
preserves the user-facing escape hatch added in #1211 by flipping it from opt-out to opt-in: the traditional title bar is now the default, and GTK_CSD=1 brings back the GNOME-style header bar without rebuilding.
1 parent c715d97 commit dd15670

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

scripts/app_config/templates/linux/my_application.cc

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,19 @@ static void my_application_activate(GApplication* application) {
2323
GtkWindow* window =
2424
GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
2525

26-
gtk_window_set_title(window, "PlaceHolderName");
26+
// Use a traditional title bar by default for best compatibility across
27+
// desktop environments (KDE, XFCE, tiling WMs, etc.).
28+
// Set GTK_CSD=1 to use a GNOME-style header bar instead.
29+
const char* gtk_csd_env_var = getenv("GTK_CSD");
30+
if (gtk_csd_env_var && strcmp(gtk_csd_env_var, "1") == 0) {
31+
GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
32+
gtk_widget_show(GTK_WIDGET(header_bar));
33+
gtk_header_bar_set_title(header_bar, "PlaceHolderName");
34+
gtk_header_bar_set_show_close_button(header_bar, TRUE);
35+
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
36+
} else {
37+
gtk_window_set_title(window, "PlaceHolderName");
38+
}
2739

2840
gtk_window_set_default_size(window, 1220, 500);
2941
gtk_widget_show(GTK_WIDGET(window));

0 commit comments

Comments
 (0)