ad3e6e
From 32fbc4f247a31e35ade0939542e11aa033a2554f Mon Sep 17 00:00:00 2001
ad3e6e
From: Bram Moolenaar <Bram@vim.org>
ad3e6e
Date: Tue, 29 Sep 2020 22:16:09 +0200
ad3e6e
Subject: [PATCH] patch 8.2.1774: GTK: hang when forced to exit
ad3e6e
ad3e6e
Problem:    GTK: hang when forced to exit.
ad3e6e
Solution:   Do not clean up "mainwin" when really_exiting is set.
ad3e6e
            (Zdenek Dohnal, closes #7042)
ad3e6e
---
ad3e6e
 src/gui_gtk_x11.c | 7 +++++--
ad3e6e
 src/version.c     | 2 ++
ad3e6e
 2 files changed, 7 insertions(+), 2 deletions(-)
ad3e6e
ad3e6e
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
ad3e6e
index fe1ac5878..ecd2d887f 100644
ad3e6e
--- a/src/gui_gtk_x11.c
ad3e6e
+++ b/src/gui_gtk_x11.c
ad3e6e
@@ -4381,11 +4381,14 @@ gui_mch_open(void)
ad3e6e
     return OK;
ad3e6e
 }
ad3e6e
 
ad3e6e
-
ad3e6e
+/*
ad3e6e
+ * Clean up for when exiting Vim.
ad3e6e
+ */
ad3e6e
     void
ad3e6e
 gui_mch_exit(int rc UNUSED)
ad3e6e
 {
ad3e6e
-    if (gui.mainwin != NULL)
ad3e6e
+    // Clean up, unless we don't want to invoke free().
ad3e6e
+    if (gui.mainwin != NULL && !really_exiting)
ad3e6e
 	gtk_widget_destroy(gui.mainwin);
ad3e6e
 }
ad3e6e
 
ad3e6e
-- 
ad3e6e
2.26.2
ad3e6e