thunderbird/mozilla-1522780.patch
2019-02-05 21:34:04 +01:00

43 lines
1.8 KiB
Diff

diff -up thunderbird-60.5.0/toolkit/xre/nsAppRunner.cpp.1522780 thunderbird-60.5.0/toolkit/xre/nsAppRunner.cpp
--- thunderbird-60.5.0/toolkit/xre/nsAppRunner.cpp.1522780 2019-02-05 20:57:28.384820067 +0100
+++ thunderbird-60.5.0/toolkit/xre/nsAppRunner.cpp 2019-02-05 21:05:27.623511428 +0100
@@ -3872,10 +3872,26 @@ int XREMain::XRE_mainStartup(bool* aExit
saveDisplayArg = true;
}
- // On Wayland disabled builds read X11 DISPLAY env exclusively
- // and don't care about different displays.
-#if !defined(MOZ_WAYLAND)
- if (!display_name) {
+ bool disableWayland = true;
+#if defined(MOZ_WAYLAND)
+ // Make X11 backend the default one.
+ // Enable Wayland backend only when GDK_BACKEND is set and
+ // Gtk+ >= 3.22 where we can expect recent enough
+ // compositor & libwayland interface.
+ disableWayland = (PR_GetEnv("GDK_BACKEND") == nullptr) ||
+ (gtk_check_version(3, 22, 0) != nullptr);
+ // Enable Wayland on Gtk+ >= 3.22 where we can expect recent enough
+ disableWayland = (gtk_check_version(3, 22, 0) != nullptr);
+ if (!disableWayland) {
+ // Make X11 backend the default one unless MOZ_ENABLE_WAYLAND or
+ // GDK_BACKEND are specified.
+ disableWayland = (PR_GetEnv("GDK_BACKEND") == nullptr) &&
+ (PR_GetEnv("MOZ_ENABLE_WAYLAND") == nullptr);
+ }
+#endif
+ // On Wayland disabled builds read X11 DISPLAY env exclusively
+ // and don't care about different displays.
+ if (disableWayland && !display_name) {
display_name = PR_GetEnv("DISPLAY");
if (!display_name) {
PR_fprintf(PR_STDERR,
@@ -3883,7 +3899,6 @@ int XREMain::XRE_mainStartup(bool* aExit
return 1;
}
}
-#endif
if (display_name) {
mGdkDisplay = gdk_display_open(display_name);