Bug 1423985 - Force CSD titlebar mode when GTK_CSD is set, r?jhorak
MozReview-Commit-ID: KxKI20TEY7U
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -6928,16 +6928,26 @@ nsWindow::GetCSDSupportLevel() {
}
// We don't support CSD_SUPPORT_FULL on Wayland
if (!GDK_IS_X11_DISPLAY(gdk_display_get_default()) &&
sCSDSupportLevel == CSD_SUPPORT_FULL) {
sCSDSupportLevel = CSD_SUPPORT_FLAT;
}
+ // GTK_CSD forces CSD mode - use also CSD because window manager
+ // decorations does not work with CSD.
+ // We check GTK_CSD as well as gtk_window_should_use_csd() does.
+ if (sCSDSupportLevel == CSD_SUPPORT_FULL) {
+ const char* csdOverride = getenv("GTK_CSD");
+ if (csdOverride && g_strcmp0(csdOverride, "1") == 0) {
+ sCSDSupportLevel = CSD_SUPPORT_FLAT;
+ }
+ }
+
// Allow MOZ_GTK_TITLEBAR_DECORATION to override our heuristics
const char* decorationOverride = getenv("MOZ_GTK_TITLEBAR_DECORATION");
if (decorationOverride) {
if (strcmp(decorationOverride, "none") == 0) {
sCSDSupportLevel = CSD_SUPPORT_NONE;
} else if (strcmp(decorationOverride, "client") == 0) {
sCSDSupportLevel = CSD_SUPPORT_FLAT;
} else if (strcmp(decorationOverride, "system") == 0) {