Blame 0002-Fall-back-to-the-terminal-from-pure-GTK-when-no-disp.patch

Peter Oliver 16d205
From 7099578f18b1ea6a168b1883fa7a4ac7f49fc08f Mon Sep 17 00:00:00 2001
Peter Oliver 16d205
From: Peter Oliver <git@mavit.org.uk>
Peter Oliver 16d205
Date: Sun, 14 Jul 2024 20:47:14 +0100
Peter Oliver 16d205
Subject: [PATCH 2/2] Fall back to the terminal from pure GTK when no display
Peter Oliver 16d205
 is available
Peter Oliver 16d205
MIME-Version: 1.0
Peter Oliver 16d205
Content-Type: text/plain; charset=UTF-8
Peter Oliver 16d205
Content-Transfer-Encoding: 8bit
Peter Oliver 16d205
Peter Oliver 16d205
* src/dispnew.c (init_display_interactive): Only use PGTK windowing if
Peter Oliver 16d205
at least one of the environment variables WAYLAND_DISPLAY, DISPLAY,
Peter Oliver 16d205
BROADWAY_DISPLAY is set.  (Bug#63555)
Peter Oliver 16d205
Peter Oliver 16d205
This patch is not suitable for merging, because it doesn’t consider
Peter Oliver 16d205
what happens if you try to use PGTK on Windows or MacOS.
Peter Oliver 16d205
---
Peter Oliver 16d205
 src/dispnew.c | 29 ++++++++++++++++++++++++++---
Peter Oliver 16d205
 1 file changed, 26 insertions(+), 3 deletions(-)
Peter Oliver 16d205
Peter Oliver 16d205
diff --git a/src/dispnew.c b/src/dispnew.c
Peter Oliver 16d205
index 7cf2b49273c..481d33a7302 100644
Peter Oliver 16d205
--- a/src/dispnew.c
Peter Oliver 16d205
+++ b/src/dispnew.c
Peter Oliver 16d205
@@ -6557,10 +6557,33 @@ init_display_interactive (void)
Peter Oliver 16d205
 #endif
Peter Oliver 16d205
 
Peter Oliver 16d205
 #ifdef HAVE_PGTK
Peter Oliver 16d205
-  if (!inhibit_window_system && !will_dump_p ())
Peter Oliver 16d205
+  if (!inhibit_window_system)
Peter Oliver 16d205
     {
Peter Oliver 16d205
-      Vinitial_window_system = Qpgtk;
Peter Oliver 16d205
-      return;
Peter Oliver 16d205
+      if (!display_arg && !will_dump_p ())
Peter Oliver 16d205
+	{
Peter Oliver 16d205
+	  int i;
Peter Oliver 16d205
+	  const char *gdk_display_variables[] = {
Peter Oliver 16d205
+	    "WAYLAND_DISPLAY",
Peter Oliver 16d205
+	    "DISPLAY",
Peter Oliver 16d205
+	    "BROADWAY_DISPLAY",
Peter Oliver 16d205
+	  };
Peter Oliver 16d205
+	  size_t n = ARRAYELTS (gdk_display_variables);
Peter Oliver 16d205
+
Peter Oliver 16d205
+	  for (i = 0; i < n; i++)
Peter Oliver 16d205
+	    {
Peter Oliver 16d205
+	      char *display;
Peter Oliver 16d205
+	      display = getenv (gdk_display_variables[i]);
Peter Oliver 16d205
+	      if (display != 0 && *display != 0)
Peter Oliver 16d205
+		{
Peter Oliver 16d205
+		  display_arg = 1;
Peter Oliver 16d205
+		  break;
Peter Oliver 16d205
+		}
Peter Oliver 16d205
+	    }
Peter Oliver 16d205
+	}
Peter Oliver 16d205
+      if (display_arg) {
Peter Oliver 16d205
+	Vinitial_window_system = Qpgtk;
Peter Oliver 16d205
+	return;
Peter Oliver 16d205
+      }
Peter Oliver 16d205
     }
Peter Oliver 16d205
 #endif
Peter Oliver 16d205
 
Peter Oliver 16d205
-- 
Peter Oliver 16d205
2.45.2
Peter Oliver 16d205