Exit when out of terminals or windows
[tilda-gobject.git] / tilda.c
diff --git a/tilda.c b/tilda.c
index 65a0df7..d1f6a2c 100644 (file)
--- a/tilda.c
+++ b/tilda.c
@@ -103,7 +103,7 @@ tilda_add_window ()
        return ret;
 }
 
-static void
+void
 tilda_del_window (gint number)
 {
        debug_enter ();
@@ -120,6 +120,13 @@ tilda_del_window (gint number)
                        debug_printf ("Deleting window 0x%x (number %d of %d)\n", win, win->number, windows->len-1);
                        g_ptr_array_remove_index (windows, i);
                        g_object_unref (G_OBJECT(win));
+
+                       if (windows->len == 0)
+                       {
+                               debug_printf ("No windows left, exiting...\n");
+                               gtk_main_quit ();
+                       }
+
                        break;
                }
        }
@@ -210,6 +217,9 @@ int main (int argc, char *argv[])
        gtk_main ();
        debug_printf ("Out of gtk_main(), going down\n");
 
+       /* Free the pointer array we allocated earlier */
+       g_ptr_array_free (windows, TRUE);
+
        return 0;
 }