hmm, there's already a related comment in `src/vte.c:vte_close()` about crashes 
on FreeBSD.
Okay, trying the hard way by blocking `vte_start` completely if `vte_close` is 
running:
```c
--- geany-1.36.orig/src/vte.c
+++ geany-1.36/src/vte.c
@@ -393,9 +393,10 @@ static void create_vte(void)
        g_signal_connect_after(vte, "realize", G_CALLBACK(on_vte_realize), 
NULL);
 }
 
-
+static int vte_closing;
 void vte_close(void)
 {
+       vte_closing = 1;
        g_free(vf);
        /* free the vte widget before unloading vte module
         * this prevents a segfault on X close window if the message window is 
hidden */
@@ -485,6 +486,8 @@ static void vte_commit_cb(VteTerminal *v
 
 static void vte_start(GtkWidget *widget)
 {
+       if (0 < vte_closing)
+         return;
        /* split the shell command line, so arguments will work too */
        gchar **argv = g_strsplit(vc->shell, " ", -1);
 
```
Building and publishing the RPM on 
[OBS](https://build.opensuse.org/package/show/home:berny:branches:GNOME:Apps/geany)
 takes a while ...

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/2457#issuecomment-611220910

Reply via email to