From 4cd501d00c2d731619c866937875b0f571ef1bc5 Mon Sep 17 00:00:00 2001 From: q234rty Date: Mon, 1 Aug 2022 12:41:20 +0800 Subject: [PATCH] feat: Bring back disabling the header bar on Linux desktop (cherry picked from commit 5ca4b66157cc7a2ace9140260d52d224616ce924) --- linux/my_application.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/linux/my_application.cc b/linux/my_application.cc index 648e5fd4..4f0f0c09 100644 --- a/linux/my_application.cc +++ b/linux/my_application.cc @@ -28,12 +28,25 @@ static void my_application_activate(GApplication* application) { // If running on Wayland assume the header bar will work (may need changing // if future cases occur). gboolean use_header_bar = TRUE; + // Lines added to the template start + // Please re-add these lines after updating the linux build files + // If the user explicitly requests to disable the header bar, switch back to + // using a traditional title bar + const gchar* gtk_csd_env = g_getenv("GTK_CSD"); + if (gtk_csd_env != nullptr && g_strcmp0(gtk_csd_env, "1") != 0) + use_header_bar = FALSE; + // Lines added to the template end #ifdef GDK_WINDOWING_X11 GdkScreen* screen = gtk_window_get_screen(window); if (GDK_IS_X11_SCREEN(screen)) { const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); if (g_strcmp0(wm_name, "GNOME Shell") != 0) { use_header_bar = FALSE; + // Lines added to the template start + // Please re-add these lines after updating the linux build files + // Disable libhandy here, otherwise the close button disappears on KDE X11 + g_setenv("GTK_CSD", "0", TRUE); + // Lines added to the template end } } #endif