Don't fail fatally if gui cannot connect to X server
authorkunitoki <kunitoki@gmail.com>
Mon, 16 Mar 2020 12:01:47 +0000 (13:01 +0100)
committerIOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>
Mon, 16 Mar 2020 12:35:45 +0000 (13:35 +0100)
Bug: https://github.com/WeAreROLI/JUCE/issues/422

This is a slight modification of https://github.com/WeAreROLI/JUCE/issues/422 by
IOhannes m zmölnig, using early exits rather than longish if-clauses (mainly to
minimize the diff).

Gbp-Pq: Name 0011-Don-t-fail-fatally-if-gui-cannot-connect-to-X-server.patch

modules/juce_gui_basics/native/juce_linux_X11.cpp

index a2ceb67074d2b2b9c8988b2dbdb1f7737d8d8336..7d675413d18d04d23ff109a19797ce35f953b0ad 100644 (file)
@@ -149,7 +149,8 @@ XWindowSystem::~XWindowSystem() noexcept
 \r
 ::Display* XWindowSystem::displayUnref() noexcept\r
 {\r
-    jassert (display != nullptr);\r
+    if (!display)\r
+        return display;\r
     jassert (displayCount.get() > 0);\r
 \r
     if (--displayCount == 0)\r
@@ -168,7 +169,7 @@ void XWindowSystem::initialiseXDisplay() noexcept
     if (display == nullptr)\r
     {\r
         Logger::outputDebugString ("Failed to connect to the X Server.");\r
-        Process::terminate();\r
+        return;\r
     }\r
 \r
     // Create a context to store user data associated with Windows we create\r
@@ -223,6 +224,9 @@ void XWindowSystem::initialiseXDisplay() noexcept
 \r
 void XWindowSystem::destroyXDisplay() noexcept\r
 {\r
+    if (!display)\r
+        return;\r
+\r
     ScopedXLock xlock (display);\r
     XDestroyWindow (display, juce_messageWindowHandle);\r
     juce_messageWindowHandle = 0;\r