summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2012-10-02 01:52:43 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2012-10-01 20:55:28 -0700
commitcfefa0206dce3e144ee51383d81a146719b64737 (patch)
tree79c86a2ef00bc860840dedd3dceaecdea47c09a8
parent7f01b91c991e67a2a1a20a75a3ff01ad4fa6d975 (diff)
downloadsubsurface-cfefa0206dce3e144ee51383d81a146719b64737.tar.gz
Destroy the divelist (tree) before calling gtk_main_quit()
Added new function dive_list_destroy() in divelist.c Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--display-gtk.h1
-rw-r--r--divelist.c5
-rw-r--r--gtk-gui.c2
3 files changed, 8 insertions, 0 deletions
diff --git a/display-gtk.h b/display-gtk.h
index b75515232..7b2ce5f2e 100644
--- a/display-gtk.h
+++ b/display-gtk.h
@@ -74,6 +74,7 @@ extern GtkWidget *cylinder_list_widget(int w_idx);
extern GtkWidget *weightsystem_list_widget(int w_idx);
extern GtkWidget *dive_list_create(void);
+extern void dive_list_destroy(void);
unsigned int amount_selected;
diff --git a/divelist.c b/divelist.c
index 2d6c6fdcf..9bdee1571 100644
--- a/divelist.c
+++ b/divelist.c
@@ -2294,6 +2294,11 @@ GtkWidget *dive_list_create(void)
return dive_list.container_widget;
}
+void dive_list_destroy(void)
+{
+ gtk_widget_destroy(dive_list.tree_view);
+}
+
void mark_divelist_changed(int changed)
{
dive_list.changed = changed;
diff --git a/gtk-gui.c b/gtk-gui.c
index 0a4ee48e9..5a680c776 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -356,6 +356,7 @@ static gboolean on_delete(GtkWidget* w, gpointer data)
static void on_destroy(GtkWidget* w, gpointer data)
{
+ dive_list_destroy();
gtk_main_quit();
}
@@ -369,6 +370,7 @@ void quit(GtkWidget *w, gpointer data)
quit = ask_save_changes();
if (quit){
+ dive_list_destroy();
gtk_main_quit();
}
}