From d03dbcc3d99e88372a97d30c4bfef75eef97c6d1 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Tue, 19 Oct 2021 05:57:21 +0300
Subject: [PATCH 32/32] gtk: Destroy toplevel window on quit

See osdn #43072

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/gui-gtk-3.0/gui_main.c  | 1 +
 client/gui-gtk-3.22/gui_main.c | 1 +
 client/gui-gtk-4.0/gtkcompat.h | 2 ++
 client/gui-gtk-4.0/gui_main.c  | 1 +
 4 files changed, 5 insertions(+)

diff --git a/client/gui-gtk-3.0/gui_main.c b/client/gui-gtk-3.0/gui_main.c
index 52a5b5edc0..39378f52a1 100644
--- a/client/gui-gtk-3.0/gui_main.c
+++ b/client/gui-gtk-3.0/gui_main.c
@@ -1840,6 +1840,7 @@ void ui_main(int argc, char **argv)
   free_unit_table();
   editgui_free();
   gtk_widget_destroy(toplevel_tabs);
+  gtk_widget_destroy(toplevel);
   message_buffer = NULL; /* Result of destruction of everything */
   tileset_free_tiles(tileset);
 }
diff --git a/client/gui-gtk-3.22/gui_main.c b/client/gui-gtk-3.22/gui_main.c
index d6cf524047..a3807e9eaa 100644
--- a/client/gui-gtk-3.22/gui_main.c
+++ b/client/gui-gtk-3.22/gui_main.c
@@ -1926,6 +1926,7 @@ void ui_main(int argc, char **argv)
   free_unit_table();
   editgui_free();
   gtk_widget_destroy(toplevel_tabs);
+  gtk_widget_destroy(toplevel);
   message_buffer = NULL; /* Result of destruction of everything */
   tileset_free_tiles(tileset);
 }
diff --git a/client/gui-gtk-4.0/gtkcompat.h b/client/gui-gtk-4.0/gtkcompat.h
index 6a78502944..0f47b12c1e 100644
--- a/client/gui-gtk-4.0/gtkcompat.h
+++ b/client/gui-gtk-4.0/gtkcompat.h
@@ -52,6 +52,8 @@ GtkWidget *compat_scrolled_window_new_wrapper(void);
 #define gtk_scrolled_window_new() compat_scrolled_window_new_wrapper()
 #endif  /* GTKCOMPAT_ITSELF */
 
+#define gtk_window_destroy(_wnd_) gtk_widget_destroy(_wnd_)
+
 #endif  /* GTK version < 3.99 */
 
 #endif  /* FC__GTKCOMPAT_H */
diff --git a/client/gui-gtk-4.0/gui_main.c b/client/gui-gtk-4.0/gui_main.c
index 2ec77f1f0c..cbb06c2dfb 100644
--- a/client/gui-gtk-4.0/gui_main.c
+++ b/client/gui-gtk-4.0/gui_main.c
@@ -1766,6 +1766,7 @@ void ui_main(int argc, char **argv)
   free_unit_table();
   editgui_free();
   gtk_widget_destroy(toplevel_tabs);
+  gtk_window_destroy(toplevel);
   message_buffer = NULL; /* Result of destruction of everything */
   tileset_free_tiles(tileset);
 }
-- 
2.33.0